<<

Oracle JDeveloper Overview

An Oracle White Paper January 2008

Oracle JDeveloper Overview

Introduction ...... 3 Complete and Integrated ...... 3 Productivity with Choice ...... 3 Standard, Open, and Extensible ...... 4 Oracle ADF – SimpLer EE Development ...... 5 The View Layer ...... 6 The Controller Layer ...... 6 The Business Services Layer ...... 7 The Model Layer ...... 7 Visual and Declarative Java EE Development ...... 8 The Business Services layer ...... 8 The Model Layer ...... 9 The Controller Layer ...... 10 The View layer ...... 11 Full Life Cycle Support ...... 12 UML Modeling and MDA ...... 12 Coding ...... 13 Debugging and Testing ...... 13 Code Profiling and Optimization ...... 14 Deployment ...... 14 Team Development ...... 15 More Than Just a Java Tool ...... 16 Web Services Development ...... 16 SOA Development ...... 17 BPEL Designer ...... 17 ESB Designer ...... 18 Portal and Portlets Development ...... 18 Development ...... 19 XML Development ...... 19 Conclusion ...... 20

Oracle JDeveloper Overview Page 2 Oracle JDeveloper Overview

INTRODUCTION Oracle JDeveloper is an integrated development environment (IDE) for building service oriented applications using the latest industry standards for Java, XML, Web services and SQL. Oracle JDeveloper supports the complete development life cycle with integrated features for modeling, coding, debugging, testing, profiling, tuning, and deploying applications. JDeveloper’s visual and declarative development approach and the innovative Oracle Application Development Framework (Oracle ADF) work together to simplify application development and reduce mundane coding tasks, offering unparalleled productivity and a choice of technology stacks.

Complete and Integrated Oracle JDeveloper supports every step of the development life cycle, including modeling, coding, debugging, testing, profiling, tuning, and deploying applications. All these tasks are done from a single IDE using a set of integrated features. Although JDeveloper is mainly a Java development tool it offers extensive support for development in related languages and environments as well. In addition to the Java capabilities, JDeveloper enables XML-based application development with features such as the XML Schema Modeler, XML code insight and visual editing, and XSLT debugging. Oracle JDeveloper also provides a full development and modeling environment for building database objects and stored procedures. Oracle JDeveloper provides a single, highly integrated, developer-friendly IDE, with a consistent interface and development experience.

Productivity with Choice The goal of Oracle JDeveloper is to make enterprise Java development simpler and more accessible. To achieve this goal, Oracle JDeveloper focuses on a visual and declarative approach to enterprise Java development. Further simplification is provided by the Oracle Application Development Framework (Oracle ADF) - a Java EE development framework that implements design patterns and eliminates infrastructure coding.

Oracle JDeveloper Overview Page 3 A unique aspect of Oracle JDeveloper is that the same productive development experience is used for various technology stacks. For example, developers can choose to implement a persistence layer using simple Java classes, EJB, TopLink, Oracle ADF Business Components, or Web services. Regardless of the chosen technology, Oracle JDeveloper will provide a declarative way to create this layer, as well as drag-and-drop mechanisms to bind user-interface components to any of these implementations. Realizing that different developers have a different Java skill levels and their own preferred development approach, Oracle JDeveloper provides a choice of development approaches that includes Model Driven Architecture (MDA), declarative development, and hand-coding. Developers can choose the approach that best suits their personal development style. Various developers can work on the same files using any of these approaches. Applications developed with JDeveloper work with any data source and can be deployed on any J2EE-compatible application . Oracle JDeveloper, a 100% Java-based tool, is a cross-platform IDE that runs on Windows, , Mac, and various Unix-based systems, letting developers choose their preferred development platform.

Standard, Open, and Extensible Oracle JDeveloper lets developers use the latest JDK 5.0 and J2EE 1.4 standards to develop applications that can operate across multiple hardware and platforms. Applications built with Oracle JDeveloper can be deployed to any J2EE- compliant server and can access any JDBC-compliant database. Oracle JDeveloper embraces popular open source frameworks and tools, providing built-in features for Struts, Ant, JUnit, XDoclets, and CVS. This integration enables developers to use these open source tools to streamline their development process. Oracle JDeveloper offers an Extension SDK that lets developers add capabilities and customize the development environment. Oracle JDeveloper is built as a set of extensions on top of a core IDE platform. Developers can turn extensions on or off as they wish, customizing the IDE for their needs. The same API that is used by the JDeveloper team to develop the product is available to developers and third party companies who are interested in integrating with and enhancing Oracle JDeveloper.

Oracle JDeveloper Overview Page 4 ORACLE ADF œ SIMPLER JAVA EE DEVELOPMENT Java EE is a set of specifications for building multi tier applications using the Java language. Java EE is a robust, scalable, and secure platform that forms the basis for many of today’s enterprise applications. Over the years, best practices and design patterns have evolved for the Java EE platform. The problem is that implementing these best practices usually involves writing many lines of infrastructure code. Oracle JDeveloper aims to solve this problem by introducing the Oracle Application Development Framework (Oracle ADF). This framework simplifies Java EE development by minimizing the need to write code that implements design patterns and application’s infrastructure. Oracle ADF provides these features as part of the framework. Oracle ADF features both runtime services and development features. Oracle ADF is an evolution, an improvement, and an extension of frameworks that were included with previous versions of JDeveloper. Oracle ADF is based on the Model-View-Controller (MVC) design pattern. MVC separates the application architecture into three layers: • Model - handles interaction with data-sources and runs the business logic • View - handles the application • Controller - handles the application flow and acts as the interface between the Model and the View layers The independence of each layer from the others results in a loosely-coupled architecture. Using a loosely-coupled architecture for applications simplifies maintaining and increases code-reusing and helps promote service oriented architecture. Oracle ADF provides an easy way to implement the MVC architecture.

Oracle ADF a high level architecture

Oracle JDeveloper Overview Page 5

Oracle ADF is based on four layers: • The Business Services layer - provides access to data from various sources and handles business logic. • The Model layer - provides an abstraction layer on top of the Business Services layer, enabling the View and Controller layers to work with different implementations of Business Services in a consistent way. • The Controller layer - provides a mechanism to control the flow of the . • The View layer - provides the user interface to the application. Oracle ADF lets developers choose the technology they prefer to use when implementing each of the layers. Oracle ADF provides the same visual and declarative development experience regardless of the technology stack used.

The View Layer The View layer provides the user interface to the application. The view layer uses HTML, rich Java components, or XML and its variations to render the user interface. The View layer can be Web-based, client server-based, or even a wireless implementation. Oracle ADF supports using JSF, JSP and for creating the user interface. For JSF implementation Oracle ADF includes a set of rich functionality JSF components – called ADF Faces. The ADF Faces components can be used to create sophisticated web interfaces using JSF. In addition, Oracle offers rendering kits for the ADF Faces set of JSF components that can render the interfaces on mobile devices, telnet and ASK based systems.

The Controller Layer The Controller layer controls the application’s flow. Web-based applications are composed of multiple Web pages with dynamic content. The controller layer manages the flow between these pages and the logic involved in these flows. Different models can be used when building this layer. The most prominent architecture for Java-based Web applications relies on a servlet that acts as the controller. The two most prominent solution for controllers are JSF and Struts. The Apache Jakarta Struts controller - an open source framework controller - is a very popular solution for JSP-based Web systems. JavaServer Faces (JSF) provides a standard controller as part of a framework for Java EE applications. Oracle ADF can use both JSF and the Struts controller to manage the flow of Web applications.

Oracle JDeveloper Overview Page 6 The Business Services Layer The Business Services layer manages interaction with a data persistence layer. It provides such services as data persistence, object/relational mapping, transaction management, and business logic execution. The Business Services layer in Oracle ADF can be implemented as simple Java classes, EJB (including the new EJB 3.0 specification), Web services, TopLink objects, Oracle ADF Business Components, Oracle Content DB, File System, Oracle Portal, XML data source, or CSV files.

The Model Layer The Model layer connects the Business Services to the objects that use them in the View and Controller layers. Oracle ADF provides a Model layer implementation that sits on top of Business Services, providing a single interface that can be used to access any type of Business Service. Developers get the same development experience when binding any type of Business Service layer implementation to the View and Controller layers. The Model layer in Oracle ADF served as the basis for JSR-227 “A Standard Data Binding & Data Access Facility for J2EE”.

Oracle ADF œ Technology Stack

Oracle JDeveloper Overview Page 7 VISUAL AND DECLARATIVE JAVA EE DEVELOPMENT Oracle JDeveloper simplifies Java EE development by offering visual and declarative tools for each layer of the application.

The Business Services layer Oracle JDeveloper includes UML modelers for modeling and creating EJB, TopLink objects, Simple Java classes, and Oracle ADF Business Components. Developers can drag-and-drop tables from the database browser onto the diagram to generate Business Services that provide Java interfaces to these tables

EJB Diagram

Oracle JDeveloper provides declarative interfaces that simplify the creation and definition of EJB. Entity Beans can be reversed engineered from database tables, and session facades session beans can be generated for entity beans through a dialog. The EJB DTO design pattern implementations can be generated with a click of a button. In addition to the support for EJB 1.1, 2.0 and 2.1 which is part of J2EE 1.4, JDeveloper supports EJB 3.0 development through declarative dialogs and support for the new annotations-based syntax. EJB 3.0, part of Java EE 5, drastically simplifies the EJB standard basing it on a POJO approach and including a standard for Java persistence API (JPA). JDeveloper provides support for EJB 3.0 and JPA through both declarative and coding features.

Oracle JDeveloper Overview Page 8 Oracle JDeveloper integrates the TopLink Mapper to help developers visually map Java objects to and other data-sources using the powerful TopLink persistence layer. TopLink offers both the capability to create objects directly from tables as well as a meet-in-the-middle solution for mapping existing Java objects to existing tables. The TopLink runtime framework provides advance caching and tuning capabilities for the persistence layer.

POJO persistence with TopLink

Oracle ADF Business Components is a framework focused on creating objects, which implement the Business Services layer on top of a database, in a more declarative and SQL centered way. It provides out-of-the-box services such as transaction management, resource pooling, locking, declarative validation rules, translation, and object-relational mapping. Oracle ADF Business Components let developers leverage the full power of SQL when building Java objects that access their databases. With built-in implementation of common Java EE design patterns in the framework, the performance and scalability of the application is assured.

The Model Layer Oracle JDeveloper provides a very easy way to bind components from the Business Services layer to your Controller and View layers using an innovative implementation of the Model layer. Developers can simply drag-and-drop data objects and bind them to their user interface implementation. The same mechanism enables an easy binding of controller actions to methods defined in the Business Services layer.

Oracle JDeveloper Overview Page 9

The Controller Layer Oracle JDeveloper supports both the Java EE standard JSF controller as well as the popular open-source Apache Jakarta Struts controller. JDeveloper includes visual page-flow modelers for both Struts and JSF. These modelers provides a visual interface to the controller’s configuration files that simplifies the development of the application flow. Developers model their page flows using simple drag and drop of components onto the diagram. The diagram is automatically synchronized with the source in the struts-config.xml or jsf- config.xml files. Further configuration of the controllers can be done through dalog windows or directly in the code editor.

JSF Page Flow Modeler

Using the Data Control Palette, developers can associate Business Services methods with Struts actions. The page flow diagrams provide drill-down access to Web page editing as well as the action coding. JDeveloper also support the use of the Struts Tiles and the JSP Struts tags when building JSP based applications.

Oracle JDeveloper Overview Page 10 The View layer Oracle JDeveloper provides a visual layout editor for HTML, JSP, JSF, Swing and Mobile user interfaces. Developers use the component palette to add visual components to the application’s user interface. The component palette can be extended with any standard JavaBean ,JSP Tag or JSF components. Developers can use the Property Inspector to declaratively define the attributes of visual components. The visual layout editor is synchronized with the at all times, so developers can choose their preferred editing mode. The JDeveloper editor provides code insight for HTML, JSP and JSF as well as for Swing helping developers code faster. The Data Control Palette window provides a view into the Business Services layer. Developer can bind user interface components to Business Service with a simple drag-and-drop from this palette. For Web based applications Oracle ADF also includes ADF Faces – a set of JSF components that developers can use to declaratively define advanced HTML user interfaces with rich functionality using the JSF architecture.

Visual JSF editing

Oracle JDeveloper Overview Page 11

FULL LIFE CYCLE SUPPORT Oracle JDeveloper supports all the development stages of an application including modeling, debugging, testing, profiling, optimizing, and deploying applications. JDeveloper also provide integration with popular source management systems.

UML Modeling and MDA Oracle JDeveloper provides built-in UML modeling tools for application analysis and design. JDeveloper includes a Class Modeler, a Use Case Modeler, an Activity Modeler and a Sequence Modeler. These platform independent modelers (PIM) are used for conceptual modeling and documentation of the application. JDeveloper can transform a conceptual Class diagram into a platform specific implementation generating Java classes from the model. JDeveloper also support reverse engineer of classes into class diagrams. In addition Sequence diagrams can be generated through code debugging process. Additional platform specific modeling (PSM) capabilities in Oracle JDeveloper provide a visual way to model and create and modify actual application code as well as reverse engineer applications. These include: • Class modeler profiles for modeling, generating and of Java classes, EJB, and TopLink classes • Struts Page flow modeler for visual design of the struts-config.xml file • JSF page flow modeler for visual design of the jsf-config.xml file • Database modeler for generating and capturing the structure of database schemas.

Oracle JDeveloper Overview Page 12 UML modeling in Oracle JDeveloper

Coding Java developers spend much of their time editing files using the code editor. JDeveloper helps developer create, navigate and update code with its advance code editing features. To make the task of creating new code simpler the code editor provides such features as syntax highlighting, code insight into objects, auto completion, interactive code templates, smart type-over and line split, context aware copy/paste, automatic indentation and code assist tips. To simplify the task of navigating the sea of code lines, JDeveloper provides such features as file overview margin, code folding, find usages, hierarchy browser, implement and override navigation, members navigation, code highlight, quick Javadoc, tasks window and back/forward and go to last edit navigation. JDeveloper also supports an extensive set of refactoring options that lets developers modify the code structure without changing its functionality. This helps create a more maintainable and reusable set of classes. The code editor in JDeveloper supports code insight for JSP, HTML, JSF, CSS, PL/SQL and XML files as well.

Debugging and Testing Debugging code is an essential part of the application development life cycle. Oracle JDeveloper includes a fast and powerful debugger that provides a visual way to examine code. The JDeveloper debugger supports hot-swap debugging, so developers can change their code during their debug session. Developers can set breakpoints and watches on their code and objects. The debugger can move

Oracle JDeveloper Overview Page 13 forward and backward to any point in the source code while debugging. The debugger also provides a view into the stack helping identify memory leaks. For developers of Swing based applications JDeveloper offers a unique UI debugger. The UI debugger provides an easy way to monitor user interface execution with UI snapshots, event tracking, and graphical object hierarchy display. For database developers using PL/SQL, Oracle JDeveloper includes the capability to debug PL/SQL code in stored procedures and packages. Oracle JDeveloper provides both local and remote debugging, so developers can examine code as it is executed on remote Java EE containers. For Java EE applications developer can use the built-in Java EE container that comes with Oracle JDeveloper to test their Java EE applications without the need for an installation of a stand-alone application server. Oracle JDeveloper integrates with the open source JUnit testing framework. Dialogs provide an easy way to define test cases, test fixtures, and test suites for projects or specific methods. Tests can be executed from within the IDE to validate code functionality and the results are displayed in the Junit log window providing direct link-through to the actual code.

Code Profiling and Optimization Oracle JDeveloper includes features that help developers locate and fix performance and memory bottlenecks as well as audit their code for standards compliance. A combination of the event, execution, and memory profilers enables developers to monitor applications execution to locate code areas that need attention. Acting as a personal Java guru, the innovative CodeCoach feature in JDeveloper scans the application code and provides hints and tips on changes that can be made to optimize performance. CodeCoach can even fix some of the issues automatically. Code Audit functionality helps organizations implement coding standards. JDeveloper’s auditing feature analyzes Java code and checks for adherence to coding standards. The auditing tool allows developers to find and fix rule violations in Java source files. New auditing rules and regulations can be added to those supplied with JDeveloper. Code Metrics provide an easy way to evaluate the structure of the Java code by analyzing its complexity. JDeveloper provides code metrics features that analyze the depth of the inheritance tree, the number of statements, and the cyclomatic complexity of the code.

Deployment Oracle JDeveloper simplifies the deployment of Java EE applications to Java EE servers. Dialogs provide a declarative way of creating deployment descriptor for

Oracle JDeveloper Overview Page 14 applications. The EJB verifier verifies the structure of the code and eliminates errors in the deployment process. Packaging wizards create standard WAR, EAR, RAR and JAR files from the project. These standard files can be deployed to any Java EE compliant application server. One click deploy directly from the IDE into a Java EE container is supported for Oracle Application Server, BEA’s Weblogic, JBoss, and Tomcat. For Swing based applications, JDeveloper provides wizards that package the application as a Java Web-Start application simplifying deployment on client machines. Oracle JDeveloper integrates the open source Ant tool into the IDE. Wizards help developers define and run Ant scripts that manage build tasks. An Ant script aware editor provides code insight while coding Ant build files. In addition drag and drop of Ant tasks as well as a property inspector provides an visual Ant development experience. Ant scripts can be run directly from inside the IDE and a special log window provide color coded feedback on their status.

Team Development A built-in mechanism in JDeveloper keeps track of revision of files and allows developers to visually see the differences between file versions and update the files as needed. In addition, Oracle JDeveloper integrates with software configuration tools to manage code life cycle and to enable team development. Out of the box, JDeveloper integrates with the open source CVS, Rational ClearCase, Serena Dimension, and Perforce. Wizards and menu options let developers invoke these tools from inside the IDE. Developers can add and remove files from the repository, manage versions history, check in and out, lock, and compare file versions. For CVS, JDeveloper provides a built-in CVS client that simplify working with the CVS server. In addition developers can compare versions of their files in a visual way with support for three-way merge to manage conflict. Oracle JDeveloper also offers WebDAV support for sharing files over the HTTP protocol. An SCM Extension API can be used to integrate other software configuration tools into the IDE.

Oracle JDeveloper Overview Page 15 MORE THAN JUST A JAVA TOOL Java is not the only tool in the developer’s toolbox. Other languages and technologies complement Java and help the developer deliver a complete application. Oracle JDeveloper includes features that extend its functionality to support development areas beyond pure Java.

Web Services Development Web services are used for integrating applications and crossing the boundaries between development languages. Using XML-based industry standards such as WSDL, SOAP and UDDI, code components can be reused regardless of their location or the language used in their development. Oracle JDeveloper provides full support for developing new Web services and consuming existing Web services. Oracle JDeveloper generates the necessary files to expose any Java class or as a J2EE 1.4 compliant Web service. In addition to creating Web services in a bottom- up approach (from code to WSDL) , JDeveloper also supports Top-Down approach – creating Java classes based on WSDL specifications. JDeveloper provides a visual WSDL editor for easier WSDL creation. JDeveloper provides advance Web services infrastructure support with feature that help define WS- Security, WS-Reliability and WS-Management for Web services. JDeveloper’s Support for UDDI includes the deployment of Web services into UDDI repositories, a UDDI browser, and the ability to generate code stubs that activate Web services. The SOAP monitor monitors the incoming and outgoing SOAP messages from and to the SOAP server.

Visual WSDL Editor

Oracle JDeveloper Overview Page 16 Oracle JDeveloper also supports the Web Services Interoperability standards, and provides the capability to verify that Web Services confirm to the WS-I standard. Web services can be used in Oracle ADF as a data source for the Business Services layer. Oracle ADF makes it easy to build user interfaces that interact with Web services.

SOA Development

Service-oriented architecture brings great value to organizations by delivering applications that are more agile and adaptive to changes and by simplifying integration of with newer system. In addition to developing the services, developers now face the task of orchestrating the services and enabling their integration. JDeveloper provides a development environment for these core SOA tasks with support for BPEL, and ESB development.

BPEL Designer BPEL is the standard for assembling a set of discrete services into an end-to-end process flow, radically reducing the cost and complexity of process integration initiatives. Oracle BPEL Process Manager offers a comprehensive and easy-to-use infrastructure for creating, deploying and managing BPEL business processes. JDeveloper provides the BPEL designer - a graphical drag and drop environment to design BPEL-based process flows and Web services orchestration.

Visual BPEL Designer

Oracle JDeveloper Overview Page 17 ESB Designer The Oracle Enterprise Service Bus provides the messaging and mediation foundations for building Service Oriented Architectures. JDeveloper provides a graphical drag and drop environment to design message flows or ESB services. ESB shares with BPEL some of its advanced configuration tools, such as a dictionary-based graphical Xpath mapping tool and the adapter configuration wizards that allow for graphical introspection of the target systems (such as database tables).

Portal and Portlets Development Oracle JDeveloper works together with Oracle WebCenter to provide a complete development environment for creating portals and portlets as well as context- centric applications. Oracle WebCenter Suite combines the standards-based, declarative development of JavaServer Faces, the flexibility and power of portlets and runtime customization, and a set of integrated Web 2.0 services into a new generation of context-centric, composite applications. Oracle JDeveloper provides a development environment for WebCenter. JDeveloper includes features for both JSR-168 portlets and Oracle PDK portlets development as well as deployment. Blurring the line between JSF and Portlets, JDeveloper and WebCenter enable the usage of portlets inside JSF pages just like any other JSF component. In addition JSF pages can be exposed as portlets. To complete the picture WebCenter adds customizable container JSF components that enable developers to define sections of their JSF page that will be customizable at runtime. WebCenter provides JCR-adapters to access content from Oracle Portal, Oracle Content DB and the File System. Using Oracle JDeveloper, you can then build JCR data controls to grab the content from these repositories and integrate it directly into ADF applications in a seamless way.

Oracle JDeveloper Overview Page 18

Database Development Most enterprise applications rely on a database to persist their data and include code in stored procedures and functions in the database tier. Oracle JDeveloper provides a complete environment for the database developer. The database modeler lets developers design the structure of their database including tables, columns, and relationships. It also provides the capability to reverse engineer existing database schemas into diagrams for modification or documentation. Wizards let developer create database objects such as tables, views, and code components. The database browser provides an easy view of database components, and the table viewer shows the structure and data of any table. The built-in SQL Worksheet lets developers execute any SQL command and shows its explain plan, helping optimize the database access. The code editor is aware of the PL/SQL syntax and provides code-insight and color-coding, helping developers code PL/SQL faster. Developer can also run and debug their PL/SQL code inside JDeveloper. JDeveloper can also publish PL/SQL packages as Web services – providing a new access points for system who wish to integrate logic from the database.

XML Development For XML developers Oracle JDeveloper provides a visual XML Schema editor, that lets them browse XML schemas easily. XML Schemas can be constructed visually using drag-and-drop from the component palette. The XML aware editor provides code insight while creating XML files, and the property palette and component palette provide an easy way to define tag attributes declaratively. JDeveloper includes support for XPATH search on XML documents and support for creating XQuery documents as well. Oracle JDeveloper includes the Oracle XML developer kit (Oracle XDK) that offers libraries that can be used to create XML based applications. The JDeveloper debugger can be used to debug XSLT processes. JDeveloper also provides mechanisms to register XML schemas with the Oracle XDB database features. With the new SOA Suite, JDeveloper also gains a visual XSL Mapper that helps developing transformations visually.

Oracle JDeveloper Overview Page 19 XML Schema Modeling

CONCLUSION Addressing the ever-increasing demands placed on software developers, Oracle JDeveloper provides a complete and integrated development environment with exceptional productivity boosting features. Addressing Java, SQL, XML and Web services development as well as the full development life cycle, Oracle JDeveloper is a powerful tool for both new and experienced developers looking to build SOA applications.

Oracle JDeveloper Overview Page 20 Oracle JDeveloper (10.1.3.1) Overview January 2008 Author: Shay Shmeltzer

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 © 2007, 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 Retek are registered trademarks of and/or its affiliates. Other names may be trademarks of their respective owners.