Java EE 5 Design Time Support via WTP and Eclipse: What it Means for You
Most everyone knows that the version of SAP NetWeaver Developer Studio included in the SAP NetWeaver Composition Environment leverages Eclipse 3.2 and the Web Tools Platform (WTP 1.5). What you might not realize is that weve put a lot of work into bringing Java EE 5 into WTP, and added several new features along the way including new wizards, models and editors. The focus has been towards flexibility and development productivity. There is now a merged view of the meta-data information that is dispersed throughout the Java classes as annotations and/or within the deployment descriptors. This means that you will now have a semantic (component) view of all the artifacts that youve defined in a project (this was easy to do in J2EE 1.4, but quite a complex undertaking for Java EE 5). This merged view allows the integration of Web services and JAX-WS 2.0 service endpoints with EJB navigation.
In this blog, I will give you a closer look at this functionality, and explain how its going to make your life easier.
First, lets go over the basic features of the SAP NetWeaver Developer Studio, the IDE shipped with the SAP NetWeaver platform. The latest version is based on the Eclipse platform, Callisto release. This includes:
- Eclipse 3.2
- WTP 1.5
The key features of the IDE are:
- Built-in EJB 3.0 design time support
- JPA design time support (based on Dali)
- JAX-WS 2.0 Web services support
- Support for WEB 2.5 components
- On-the-fly application debugging
- Hot deployment
The team decided to use the final release of WTP 1.5 as a foundation because it was stable and the development of WTP 2.0 had just begun. Plus, WTP 1.5 has all kinds of nice features that support the J2EE 1.4 specification. We figured it would be easy to extend the available J2EE facets, wizards, models, factories and translators. But instead we encountered a number of complex problems.
We found there were lots of internal hard coded checks in the WTP code that made certain kinds of functionality incompatible with our version of the facets. And this also prevented us from extending the existing models and wizards. Back then, SAP did not have the close connection with the WTP team that it shares today. And we quickly realized that changing the WTP code to extend the existing structures was going to take a long time, and even then the changes would not become part of WTP 1.5.x. But we still had to deliver a working solution on top of WTP 1.5!
In order to bypass the obstacles in the WTP code, we decided to build a new set of Java EE 5 facets that would exist in parallel to the J2EE 1.4 facets. By extension, we also had to build a new set of Java EE 5 models and wizards. At the same time, we established a working relationship with the WTP team and communicated our vision of Java EE 5 support in WTP. As a result, SAP and WTP teams are working in collaboration for the WTP 2.0 release, which will help ensure that Java EE in WTP is extensible enough for vendor-specific features. And it will also lead to better Java EE support on top of all future version of WTP.
So, what did we take from WTP and what did we add on top of WTP? SAP NetWeaver Developer Studio uses most of the components in WTP. We reuse all of the Web Standard Tools (WST) components and most of the J2EE Standard Tools (JST) components, they are unmodified. We reuse the flexible project layout, facets concept, J2EE perspective, etc. The new features we added on top of WTP are:
- Facets that works with the Java EE 5 modules
- Wizards to create Java EE 5 projects and artifacts.
- Models for the Java EE 5 projects that merge the meta information provided from both the XML deployment descriptors and the Java annotation in the source files.
Lets take a closer look at the new wizards and structures, since thats where your project starts.
Java EE 5 Project Wizards
This image shows the different kinds of projects supported by the wizard, such as Web 2.5, EJB 3.0, Application Client 5 and Enterprise Application 5. All projects created with the new wizards are automatically preconfigured with the SAP Java EE 5 runtime libraries.
EJB 3.0 Wizards
If you are implementing a project focusing on persistence and business logic then you want to use EJB 3.0 session beans. But then you have the application logic development, and Sun recommends that you use message driven beans when you want to develop your application logic. The wizards allow you to create session or message driven beans with defined attributes. Session beans, for example, can have attributes for session type or transaction type, and use the new business style interface or the EJB 2.1 style interface. Message driven beans can also be fined tuned for transaction type or JMS attributes, etc.
The support for JPA Entity classes is based on the Dalis Java Persistent API features.
JAX-WS 2.0 Web Service Wizard
We also extended the WTPs Web service toolset. Lets say you have your business component, your EJBs. Now you might be interested in exposing them as Web service endpoints. We took the existing wizards in WTP, which did not support JAX-WS 2.0, and extended it. As a result, you can generate artifacts based on the JAX-WS 2.0 specification, and create both Top-Down and Bottom-Up Web services. You can generate a session bean out of a WSDL, or generate a WSDL out of a session bean. It can also generate proxies so that you can execute those Web services that youve just created, or that someone else has created for that matter.
And, of course, to complete the picture, the Web Service Client is extended in a similar manner the SAP NetWeaver runtime provides support for JAX-WS 2.0 Web Service Clients creation.
In part 2 Ill dive into the new Java EE 5 models, explain the annotation and WEB 2.5 component support weve created. Well be showing all this functionality, along with the SAP NetWeaver Java Application Server, at the 2007 JavaOne Conference next week. Stop by our booth (#634) for a demo of the new features in SAP NetWeaver Developer Studio and meet with our experts.