Oracle’s Commitment to the Community

An Oracle White Paper March 2007

INTRODUCTION Eclipse has gained strong market adoption for core development and is adding support for other languages as well. It enjoys great popularity, in part because it’s free, but also due to its extensibility via plug-ins and the strong ecosystem around it. The advent of emerging trends and technologies like Web 2.0 and SOA amplified the need for an integrated and comprehensive Java IDE that provides pre- packaged and tested support for all major Java EE 5 and Web services standards. Oracle’s tools vision is “productivity with choice”. This means making application development for the Oracle platform as easy as possible regardless of what toolset developers employ be it Oracle JDeveloper or Eclipse. Oracle’s JDeveloper provides a great out-of-the box user experience and dramatically increases productivity for building Java Enterprise Edition (Java EE) and SOA based applications. For various reasons, some Oracle customers elect to use Eclipse for Java development. We believe those users should get similar productivity that other Oracle users are already enjoying with JDeveloper. That’s why Oracle chose to join the Eclipse Foundation as a Strategic Developer and Board Member, and contribute world class talent to lead a variety of Eclipse projects and address its customers' needs.

EVOLVING REQUIREMENTS Three major enterprise computing trends are coming together to form a new platform for application development. These trends are Java EE 5, Service Oriented Architecture (SOA), and Web 2.0.

Today, end users expect highly interactive user interfaces with real-time updates and desktop-like capabilities. Oracle believes the solution here is bringing together

the power of the JavaServer Faces component model and the interactivity of Ajax Java EE 5, Service Oriented (Asynchronous JavaScript and XML). Application developers simply wire together Architecture (SOA), and Web 2.0 are reusable standards-based UI components while transparently getting the key trends that will form the basis for interactivity and the great user experience that Ajax clients offer. the next application platform. Developers are also looking for ways to build modular and sophisticated business logic that leverages their enterprise data. Java EE 5 addresses these needs with the new EJB 3.0 standard that includes the Java Persistence API specification (JPA). Java EE 5 provides a powerful yet simple component model along with a persistence API based on proven open source and commercial object-relational mapping technologies like Oracle TopLink. As applications are exposed as services, developers need to declaratively integrate and orchestrate these services into much more flexible business processes that can be rapidly changed. Here, SOA and technologies like Web services, Enterprise Service Bus (ESB) and Business Process Execution Language (BPEL) promise to improve the productivity of application developers in building composite applications.

Oracle’s Commitment to the Eclipse Community Page 2 STANDARDS JavaServer Faces is a Java-based web development framework that is part of Java EE 5 and comes with a set of for representing user interface (UI) components, managing their state, event handling, input validation, defining page navigation, and other features like internationalization and accessibility. JSF also provides a flexible rendering architecture that separates the component behavior from the presentation. Oracle’s commitment to JSF and Ajax is reflected in its participation in the JSF expert group and current involvement in defining various specifications, including JSR-252. Oracle is also actively involved in helping to shape the future of Ajax by contributing to the OpenAjax Alliance. As part of its commitment to JSF, Oracle donated more than 100 JSF-based components along with a personalization framework to Apache’s MyFaces project—this donation is known as Apache Trinidad. And earlier this year at JavaOne, Oracle announced it is working with the open source community to expand its initial donation to more Ajax-enabled components. Another key standard is Enterprise JavaBeans (EJB) 3.0. Enterprise JavaBeans is the server-side component architecture for Java EE 5. EJB 3.0 enables rapid and simplified development of distributed, transactional, secure and portable applications based on Java technology. Two of the most significant improvements in the EJB 3.0 specification are the use of the program annotation facility introduced in Java 5 and the new specification for object-relational (O/) mapping called the Java Persistence API (JPA). JPA is the standard API for the management of objects persisted in a relational database. JPA defines a way to map plain old Java objects (POJOs) to relational databases. This means you can use JPA to store the Java objects you write without having to subclass a JPA-provided class or implement any JPA interfaces. In addition to co-leading the EJB 3.0 specification, Oracle supplied TopLink Essentials as the reference implementation of the Java Persistence API (JPA) to the Java Community Process (JCP) as well as project Glassfish, Sun’s open source Java EE 5 application server. TopLink Essentials is also included in the Spring Framework 2.0 distribution. Business Process Execution Language (BPEL), which is an OASIS standard, is a Web services orchestration language that provides facilities to enable sending and receiving XML messages. BPEL provides support for a property-based message correlation mechanism, XML and WSDL typed variables, XPath to allow writing expressions and queries, structured-programming constructs including if-then- elseif-else, while, sequence (to enable executing commands in order) and flow (to enable executing commands in parallel), a scoping system to allow the encapsulation of logic with local variables, fault-handlers, compensation-handlers, and event-handlers. New features in BPEL 2.0 include new activity types (if-then- else, repeatUntil, validate, forEach, extensionActivity), completion condition in forEach activity, variable initialization, and XSLT and XPath enhancements. BPEL is perfectly suited for long-running processes, correlating requests across many in-flight business processes, or invoking Web services in parallel. It’s also a

Oracle’s Commitment to the Eclipse Community Page 3 particularly convenient language to declaratively undo long-running transactions in which there has been a failure, compose larger business processes out of smaller business processes, or guarantee reliable message delivery. Oracle’s Fusion Middleware includes the industry’s leading BPEL engine.

ORACLE’S PRODUCT STRATEGY Oracle believes in "productivity with choice". Although Oracle’s JDeveloper is a great development environment, which offers design time capabilities for Java EE (including JSF, EJB 3.0, and JPA) as well as SOA technologies, some Oracle customers prefer using Eclipse. Oracle wants to make sure these customers get the productivity they need to deploy to . In addition, Oracle wants to ensure Eclipse provides adequate support for its middleware products (e.g., OC4J / Oracle Application Server) and the technologies that Oracle strongly believes in and wants to help have broader developer adoption. For all these reasons, Oracle founded and leads three Eclipse projects: the JSF Tools project, Dali JPA Tools, and the BPEL project. The JavaServer Faces Tools Project is part the Eclipse Web Tools Platform project and it aims to simplify development and deployment of JavaServer Faces (JSF) applications. The first preview of this project, release 0.5, with JSF 1.1 support shipped in June of 2006 simultaneously with WTP 1.5 and the coordinated Eclipse Callisto release. Support for JSF 1.2 is planned for the upcoming release of WTP 2.0 in June of 2007. The JSF Tools Project 0.5 release already allows

Eclipse Modeling Framework (EMF) is a developers to edit configuration files (faces-config.) and define managed beans, modeling framework and code validators, converters, and navigational rules for their web application. The project generation facility for building tools has also contributed an Eclipse Modeling Framework (EMF) model of the and other applications based on a application configuration resource file and a framework called JSF Application structured data model.

Oracle’s Commitment to the Eclipse Community Page 4 Configuration Manager. The JSF specification defines JSP as the default page Expression Language (EL) is a primary language. This project has enhanced the JSP editor to support JSF tags and feature of JSP technology version 2.0. semantic validation for both Expression Language (EL) and non-EL values of An expression language makes it attributes of the JSF standard core HTML tags which improves dramatically the possible to easily access application page author’s productivity. The editor performs validation as code is typed and data stored in JavaBeans components reports errors relieving users of time-consuming deploy-execute tasks to discover from a JSP page. the errors. The JSF Tools Project also comes with capabilities for registering JSF libraries and organizes them as groups of JARs as well as functionality to register servers such as Apache Tomcat or Oracle Application Server. The first release of this project has added key features to Web Tools Project (WTP) 1.5 that simplify JSF development; the next release will include highly anticipated features such as a visual page designer. Dali JPA Tools: Dali is an Eclipse plug-in that helps define and edit object- relational mappings for EJB 3.0 Java Persistence API (JPA) Entities. Dali works with both Java SE and Java EE environments and supports top-down, bottom-up, and meet-in-the-middle development approaches. Regardless of whether developers want to persist an existing Java object model, manipulate data in an existing database, or connect their existing Java classes with an existing database, Dali can improve their productivity and help ensure that they don't spend their time in an endless edit, deploy/run/debug cycles. The key value of Dali to the JPA developer is that it provides JPA-aware tooling and validation to ensure that what developers build at design time will execute correctly at run time. Dali bridges the tooling gap between the Eclipse Java Development Tools (JDT) and the Web Tools Platform’s database tooling (which is moving to the Data Tools Platform) by ensuring that object- relational mappings are semantically correct. For example, Dali will validate that tables, columns, and foreign keys referenced in mappings or implied by the JPA specification do exist and that the code will run when deployed. When problems are found, Dali provides the tools necessary for resolving them by providing access to both the Java source and the database schema. Dali’s focus on developer productivity continues Oracle’s commitment to providing tools that improve the application development process. In addition to building the core Dali features, Oracle will be developing an Eclipse plug-in that will extend Dali to provide support for Oracle TopLink’s and TopLink Essentials’ extended JPA features. Dali 1.0 will be shipping with WTP 2.0 as part of the coordinated Eclipse ‘Europa’ release slated for mid-2007.

Oracle’s Commitment to the Eclipse Community Page 5 The BPEL Project: The goal of the BPEL Project is to add comprehensive

GEF is an Eclipse plug-in and it stands for support to Eclipse for the definition, authoring, editing, deploying, testing and Graphical Editing Framework. It’s an MVC debugging of WS-BPEL 2.0 processes. This project aims to provide a GEF-based framework which allows developers to Designer to author BPEL processes, an EMF model to represent the BPEL 2.0 create a rich graphical editor from an specification. This EMF model is used by the third key feature which is a validator existing application model. to produce errors and warnings. The fourth capability is a runtime framework which will provide a vendor-neutral mechanism to plug any BPEL-compliant engine. Finally this project will offer a debugger to step through the execution of a process, including support for breakpoints.

The project is still incubated under the Eclipse Tools Project. The first (version 1.0) release is scheduled for early 2007. The Eclipse Persistence Platform Project (Proposed as a new Eclipse project in March 2007): The Eclipse Persistence Platform plans to deliver a proven framework with support for a number of persistence standards. In order to kick-start the project, Oracle will make a significant code contribution and open- source its proven Oracle TopLink product. The persistence platform will be composed of a number of components based on a common core, each of which supports a different persistence standard or technology. • EPP-JPA is an implementation of the EJB 3.0 Java Persistence API (JPA) for object-relational access. It will provide standardized persistence access through JPA as well as having extended persistence capabilities configured through custom annotations and XML. These extended persistence features include powerful caching (including clustered support), usage of advanced database specific capabilities, and many performance tuning and management options.

Oracle’s Commitment to the Eclipse Community Page 6 • EPP-JAXB will deliver XML binding with an implementation of JAXB 2.0 with extended functionality to support meet in the middle mapping, additional mapping flexibility, and critical performance optimizations. • EPP-SDO will provide a Service Data Object (SDO) implementation as well as the ability to represent any Java object as an SDO and leverage all of its XML binding and change tracking capabilities. • EPP-DAS will provide an SDO Data Access Service (DAS) that brings together SDO and JPA. • EPP-DBWS will provide a web services capability for developers to easily and efficiently expose their underlying relational database (Stored procedures, Packages, Tables, and ad-hoc SQL) as Web Services. The metadata driven configuration will provide flexibility as well as allow default XML binding for simplicity. • EPP-XR will deliver key infrastructure for situations where XML is required from a relational database. The metadata driven mapping capabilities of EPP-JPA and EPP-JAXB are both leveraged for the greatest flexibility. Using this approach to XML-Relational access enables greater transformation optimizations as well as the ability to leverage the Eclipse Persistence Platform’s shared caching functionality. While this capability is primary infrastructure for DBWS and DAS it will also be possible for consuming applications to leverage this directly. • EPP-EIS provides support for mapping Java POJOs onto non-relational data stores using the Java Connector Architecture (JCA) API. Oracle Application Server Support: Oracle has also contributed another plug-in to support seamless deployment of applications to the Oracle Application Server / Oracle Containers for J2EE (OC4J). This plug-in has been available since Eclipse Web Tools Platform project release 1.0 M8. Simply download the latest Eclipse version 3.2.x, it comes with WTP 1.5 which contains the necessary modules to deploy to OC4J.

Oracle believes that all these contributions will go a long way toward making the Eclipse platform a much more credible development environment. Over time, this will also make Oracle customers who use Eclipse much more productive.

Oracle’s Commitment to the Eclipse Community Page 7 CONCLUSION Oracle remains committed to JDeveloper as its principal Java IDE, however it intends to continue supporting the Eclipse community. Oracle wants to ensure that the experience of building and deploying next generation applications for the Oracle platform is as rewarding as possible. This is why Oracle founded and leads three Eclipse projects today. Oracle's strategy of investing in open source initiatives like Eclipse has planted seeds that will continue to positively impact adoption of standards and pay future dividends. Oracle will continue to lead next-generation standards and help accelerate the adoption of those standards through open source contributions of both reusable components and tools, which are necessary to improve productivity.

Oracle’s Commitment to the Eclipse Community Page 8 Oracle’s Commitment to the Eclipse Community March 2007 Authors: Omar Tazi / Ralf Dossmann

Oracle Corporation World Headquarters 500 Oracle Parkway Redwood Shores, CA 94065 U.S.A.

Worldwide Inquiries: Phone: +1.650.506.7000 Fax: +1.650.506.7200 oracle.com

Copyright © 2006, Oracle. All rights reserved. This document is provided for information purposes only and the contents hereof are subject to change without notice. This document is not warranted to be error-free, nor subject to any other warranties or conditions, whether expressed orally or implied in law, including implied warranties and conditions of merchantability or fitness for a particular purpose. We specifically disclaim any liability with respect to this document and no contractual obligations are formed either directly or indirectly by this document. This document may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without our prior written permission. Oracle, JD Edwards, PeopleSoft, and Siebel are registered trademarks of and/or its affiliates. Other names may be trademarks of their respective owners.