Oct 6, 2008
Oracle JDeveloper and Oracle ADF Release 11g marks a significant milestone in the progress of application development. We spent more time than ever in this release listening carefully to what our customers need in order to make them more productive. We embarked on an intensive design and usability review by an external company. The result of these efforts is a huge leap forward in the speed in which developers can create, assemble, and reuse components to build rich, interactive applications that are highly performant and easy to maintain. And, the new approach to integrating Oracle WLS tightly with the development environment provides unparalleled productivity for developers on the Oracle WLS platform.
Oracle JDeveloper 11g showcases new features to provide a full development environment for Java EE 5 – including EJB 3.0 and JSF 1.2 – and rounded out with new features for AJAX developers, including an impressive new ADF Faces rich client set of components as well as Javascript editing and debugging. Web services development is greatly improved with updated support for JAX-WS, a complete Web services test framework, and a comprehensive WSDL editor. There are also many developer productivity enhancements to the IDE and Java development features to explore. And, building applications with Oracle ADF has been dramatically improved with the addition of ADF Faces rich client, a new JSF-based ADF controller framework, and countless productivity-boosting enhancements.
Enhanced user experience
There have been many updates throughout the product to make working with JDeveloper a pleasant experience. These improvements are not restricted to a particular type of development, but have been applied consistently to all areas of the design time.
Installer
JDeveloper now makes use of an installer to prevent errors during installation. Features of the installer include:
Updated Help System
The JDeveloper help system has been revitalized to make it easier to find the help you are looking for, and easier to use the help during the development process. Improvements to the Help system include:
Shaping
Shaping allows for the JDeveloper environment to tailor itself based on the role of the user. It does this by removing unneeded items from the menus, preferences, new gallery, and even individual fields on dialogs. Shaping can even control the default values for fields on dialogs within the tool. When you first start JDeveloper, you are prompted to choose a role that describes how you use JDeveloper. If you choose a role of "Java Developer" versus "CRM Applications Developer" versus "Default Role" you will get a totally different experience!
Extension developers can define custom roles which can be made available to users on a given site. This would enable a JDeveloper deployment site to provide a customized view of the IDE for entire organizations. Likewise, ISVs could provide a role to enable their implementation sites to customize their applications using a streamlined version of the IDE.
Resource Catalog
The Resource Catalog is your window onto the many disparate resources your application may need to consume. It allows you to define connections to the resource providers, and drag-and-drop those resources into your application as needed. The resource catalog provides a search tool to search all the defined repositories in a single action. Connections can be created for the following types of resource repositories:
Dependency analysis
Ever needed to know what elements of your application you would need to change if you decided to add or remove a column from a database table? We bet you have! The dependency analyzer is designed to answer this and other similar questions regarding the inter-dependencies of various components of your application. The dependency analyzer allows you to determine impact analysis by searching for references for a given resource through the many files that compose your application. It also enables refactoring of composite application components and keeping all the referencing files in sync.
Improved New Application, New Project, and Application Templates
The dialogs for creating new applications and projects have been improved for ease of use. Additionally, application templates are now more flexible; you can define project templates and reuse them across application templates, or even just create a project based on a template in an existing application; and project and application templates allow you to specify the type of deployment profile that will be used by default (EAR, WAR, JAR, etc).
Extension development
This release introduces new tools for developers building extensions to JDeveloper. New wizards make it easier than ever to get started building extensions:
There is also a new Overview editor for Extension.xml files providing a much more intuitive approach to defining extensions, dependencies, and hooks. And, you can now easily run or debug an extension by right-clicking on an extension.xml file, which results in a new copy of the IDE being launched (in run or debug mode) with your extension loaded.
New diagramming framework
The internal diagramming framework used to build the UML tools in JDeveloper, the Page Flow diagrams, and other visual editors has been re-architected to be more flexible for internal consumers. The result for end users is more consistent behavior between the different diagrams.
New code generators
New generators have been added for generating equals and hashcode and to simplify generating fields and properties with getters and setters and to generate constructor from fields
Additional coding aids
New coding aids have been incorporated in JDeveloper. Highlights include:
Compiler, Runner, Debugger enhancements
Updated JUnit 4.0 support
JDeveloper now generates unit tests using JUnit 4 annotations. The integrated runner has been updated to support JUnit 4, including new instructions, such as @ignore.
New profilers
The new profilers leverage JVMTI and therefore run on any certified Java VM. Oracle's OJVM is no longer required for profiling.
XML Compare
Comparing of XML files is now done using an XML-aware algorithm. In previous releases compare was done using a line algorithm with no understanding of the syntax of the file content. XML is used extensively within JDeveloper (projects, diagrams, ADF artifacts) and the characteristics of the file content will be understood by the tool. For example if an XML element's attributes are reordered the compare tool will not mark that as a change - the attributes (name and value) are the same, but in different positions.
The compare tool is used by all the version control extensions to compare file content with previous versions. Compare is also used by the local history feature to compare content between saved points.
Ant Debugger
You can now debug Ant build files. Simply set a breakpoint in the build file, right click on the target and choose Debug Target __. While debugging, you can step through build scripts, examine and modify the values of variables, set watches, etc.
Versioning Navigator
You can now connect to and use multiple versioning systems concurrently. In the Versioning menu you can configure multiple systems and customize the available menus. The Versioning Navigator displays a root node for each versioning system you have configured. You can set up multiple connections to different system repositories and use them from the single Versioning Navigator.
Subversion Support
Team development working in JDeveloper is enhanced through
Enhanced Merge Conflict Resolution for Subversion and CVS
JDeveloper now provides an enhanced XML-aware interactive GUI to browse and update unresolvable conflicts reported during the merge process.
Whether working connected to a database (online) or disconnected (offline/file based) JDeveloper 11g provides substantial new features.
Additional online database object support
The new Database Navigator provides you with a complete editing environment for online databases. You can create, update and delete database objects using the navigator. Much of the functionality available standalone in SQLDeveloper is also available in JDeveloper. Highlights include:
You can also browse live (online) database connections through the Resource Catalog and drag them into your application
Database Diagrammer supports modeling online database objects
In addition to copying database objects offline when you drag them onto a diagram you can choose to work with the objects directly in the live database connection. If you choose this option, you will not create any offline objects and you will be able to visualize and edit the live database object directly from within the diagram. The validation of the object is done directly against the database catalog. This prevents such actions as changing the Primary Key, re-ordering columns: all not supported DML actions.
Additional offline database object support
Offline database object modeling in projects has been extended to provide for:
Default Template Objects
When you create an offline database you can now choose to initialize a set of default template database objects. These appear in a Templates schema. The objects are completely customizable and can be shared across databases and projects.
Offline user defined properties
You can create user defined properties in libraries (stored as XML files) and use them with Offline DB Object providers
Multiple offline databases per project
Multiple offline databases of different types can exist in a project. You are no longer restricted to one offline database type (e.g. Oracle 10g, MySQL etc) per project.
Offline dependency analysis
Browse usages of offline database object references, such as tables used in view select statements, and references to tables, views and object types from within PL/SQL.
Query builder
The query builder diagrammatically builds simple SQL queries in both online or offline mode. Giving you a quick start PL/SQL environment
Editing of file-based PL/SQL scripts
Open PL/SQL scripts stored on the file system and edit and compile them against a live database connection. Files can then be resaved to the file system. You can use the Database Navigator to create a new PL/SQL script, compile against the online database and save to the file system.
Enhanced database diagrammer support
The database modeler has been rewritten (see UML Development). In addition it is now possible to display materialized views, view joins and table indexes on a diagram. You can also drag and drop fields between objects.
For instance drag and drop a Primary Key to another table creates a Foreign Key relationship between the tablesdrag and Ctrl+drop columns between tables creates copies of the columns in the drop tabledrag and Shft+drop columns between tables moves then between the tables
Improved Application Server integration
As in previous versions, Oracle JDeveloper 11g ships with a lightweight, embedded application server for the purposes of test running, and debugging your applications that require a middle tier server. This release, though, introduces two major enhancements in this area:
Updated Security Configuration Support
New support is provided for the new Oracle Application Server Java Platform Security deployment descriptors through a flat editor.
Improved Application Server connection browser
The Application Server Navigator allows you to define connections, browse deployed components, and manage starting, stopping and undeploying of applications deployed to the container.
The Resource Catalog also supports browsing of Application Server connections. It enables the definition of connections, browsing the contents of the server, and adds the ability to use AS resources directly from the palette in the JDeveloper workspaces. For instance, WSIL nodes display the available web services, and you can use these to generate WS clients in JDeveloper projects.
Application and Project level deployment profiles
Deployment profiles can now be defined and stored at application or project level giving you more flexibility and enabling direct referencing and sharing. Application level deployment profile were added so that users can more closely model a Java EE application where the projects represent modules (e.g. WAR, RAR, EJB JAR...) and the application level deployment profile can be used to aggregate the modules into an application archive(EAR) which "assembles" the JEE modules.
The UI for editing Oracle Application Server deployment plans has been enhanced to provide a richer editing experience.
Command line deployment
Command Line deployment is supported through the ojdeploy command line. This enables developers to create Ant tasks to package applications from the command line based on the deployment profiles defined in JDeveloper applications or projects. This feature has parameters such as
Re-engineered Graphical Modeling Framework
The UML class modeler (and the Java, DB and ADF modelers based on it) has been rewritten on a new graphical engine that provides better performance and scalability. Future releases will see other modelers being re-hosted on this new framework.
Display of Attributes and Operations
Enhancements have been made to allow the Show and Hide of individual attributes and operations and to allow their reordering to user-defined sequences using the wizard or by means of drag and drop on the diagram surface.
Editing improvements
Improvements to the editing environment include:
Printing and publishing functionality
Printing and publishing has been enhanced to provide more flexible options in the print setup dialog (header, footer, fit to pages). In addition you are able to define a Print Area, Print Preview and Copy/Paste as image to external programs
Improved WSDL editor
The WSDL editor has been improved to provide better layout handling, including collapsible columns and validation and error feedback in design and code views. Other features to improve the WSDL editor are:
Addition of new WS Tester
The new WS tester provides you with a form based UI for quickly filling in payload details, the ability to edit and re-send messages and full integration with WS-I logging of messages. The tester also allows you to define the values for headers for security (username and password) and addressing.
Improved HTTP Analyzer
Improvements to the HTTP Analyzer include the ability to "stub" out a running WS by replacing it with automatic message responses for testing and development purposes. In addition you can stub multiple services for complex WS projects simultaneously. Messages are recorded and played back from a virtual "tape" based on response rules. This features supports both HTTP and HTTPS scenarios, and works for JAX-RPC, JAX-WS and REST web services.
WS Annotation support
JDeveloper 11g provides full JSR-181 JAX-RPC and JAX-WS annotation code-insight & auto-import, and Property Inspector support for annotation parameters with full validation and error handling
Support for WebLogic Server 10.3 new style WS policies
WS policies can be entered through annotations (with code insight for annotations and parameter values), through the Property Inspector, or through the WS Property Dialog. Policy definitions are by default picked up from the integrated server.
UDDI support
You can now browse and locate WSDLs that are hosted in UDDI repositories through the Resource Palette.
Full support for JAX-WS
The wizards and editing tools for services and client generation now support the new JAX-WS 2.1 Java EE 5 standard, providing a simpler programming model than JAX-RPC, and using JAX-B 2.0 for its data binding. The code editor has been improved with a number of Quick Fixes for common WS coding errors, and for configuring a project for WS support (auto import of libraries, web.xml generation and annotation import).
Support for asynchronous services
Asynchronous clients and stateful services can be created for interacting with BPEL processes (or other asynchronous services). These processes are themselves often long-running and asynchronous. The WS Proxy wizard will generate a client proxy, as well as a callback service that will be called to deliver the result. BPEL processes (or other clients) may also call a service in an asynchronous way.
JavaScript editor and debugger
JDeveloper now features an integrated editor and debugger for JavaScript, supporting JS 1.6, 1.7 and 1.8 features. The editor sports advanced features such as:
The debugger provides traditional debugging support (set breakpoints, stepping, watches, modifying data, etc), as well as the Classes window which shows a list of files loaded by the browser, and the ability to debug remotely by launching the browser with a special command-line argument. The JavaScript debugger is available for FireFox only.
CSS support
CSS 3.0 is now supported along with the new pseudo-elements, pseudo-classes, declarations and properties.
Code Insight now works for:
CSS editor support for ADF Faces skins
Oracle JDeveloper 11 now comprehensive development support for skinning in ADF Faces and Trinidad. Not only that ADF Faces and Trinidad skin selectors are recognized by the CSS source editor, code completion and syntax help are provided as well, making it easy for web application developers to create a custom look and feel for their ADF Faces and Trinidad applications.
New JSP features
JSP Preview in Browser/Embedded Browser
Previewing pages in a browser is significantly enhanced as users can now preview JSP pages in a browser in addition to HTML pages. The new Embedded Browser allows users to view pages in a browser that is embedded within the JDeveloper IDE
Faces Config Overview Editor
This editor has been greatly enhanced to provide a more declarative and user-friendly interface
New flat editor UI for web.xml
A new flat UI editor has been added to Oracle JDeveloper to provide developers with a task oriented view onto the web.xml deployment profile structure. Unlike previous edit screens that simply followed the structure of the web.xml file, the new editing environment groups related configuration settings on a single tab menu for easy access.
JDeveloper's support for EJB 3.0 development has been greatly improved to deliver greater productivity tools for the definition, generation, and migration of EJB applications. In support of EJB 3.0 compliance JDeveloper enables access to all features of the specification and many Oracle specific extensions.
JDeveloper now offers more comprehensive support for Oracle TopLink. With the Oracle TopLink 11g (11.1.1.0.0) release including EclipseLink 1.0.1 customers will find enhanced support for EclipseLink's JPA and MOXy components within JDeveloper as well as continued support for the native Object-Relational and Object-XML available in previous releases of JDeveloper.
Java Persistence API (JPA)
The support for the usage of Java Persistence API (JPA) entities and associated XML and annotation configuration files has been enhanced. While this support includes leveraging extended object-relational features of EclipseLink JPA it can also be used in a specification-compliant manner for portability across all JPA providers.
Native Object-Relational
Support for TopLink's object-relational persistence of POJOs has also been enhanced in this release reducing coding through additional declarative configuration capabilities in the mapping editor. These features can be used through TopLink's session API or in conjunction with JPA to provided extended functionality.
Object-XML Binding
JDeveloper now supports object-XML mapping using either JAXB 2.0 or EclipseLink's native MOXy functionality. This provides developers with great flexibility in their approach to XML binding. Starting from an annotated domain model they can generate an XSD and starting from an XSD they can generate an annotated domain model. Or, they can use the graphical mapping editor with TopLink's own XML formatted metadata to define how their domain model relates to an existing XSD for a meet in the middle solution. In addition to the graphical mapping editor, developers can hand craft their JAXB 2.0 annotations leveraging insight and a property editor.
This release contains a number of new features that apply to the ADF framework as a whole.
ADF Debugging
The JDeveloper debugger contains a number of enhancements to simplify the process of debugging an ADF application:
ADF Libraries
An ADF library is a library of components that can be shared among development teams. In JDeveloper 11g, developers can quickly package components into libraries; browse existing libraries; and import libraries into their applications. The following types of components can be packaged in an ADF library:
ADF Security
Security has been enhanced to include:
Building on the success of the open source Apache Trinidad Project, Oracle ADF Faces Rich Client extends the Trinidad component framework to provide a rich set of AJAX-enabled JSF components that radically simplifies rich internet application development.
Enhanced Databinding Experience
A number of changes have been made to enhance and simplify the experience of using ADF databinding to create databound user interfaces. These include:
New data control types
Additional data control types extend the data control functionality:
New databound components
These new databound components simplify the creation of frequently required data objects:
Business components have been further enhanced to provide extensive new and improved functionality:
ADF Data Visualization components are a set of rich interactive ADF Faces components that provide significant graphical and tabular capabilities for analyzing data. Data Visualization components provide the following common features:
The following list identifies the data visualization components:
Graph
Graph supports more than 50 types such as bar, pie, line, scatter, and stock graphs that allow you to evaluate data points on multiple axes in a variety of ways. Part of JDeveloper since 10g, Graph is now a JSF component. New features for Graph include:
Gauge
Gauge is a Data Visualization component that focuses on identification of problems in data. The available Gauge types are:
Geographic Map
Geographic Map is a new Data Visualization that provides functionality of Oracle Spatial within the ADF framework. This component allows users to represent business data on a geographic map and to superimpose multiple layers of information on a single map. The following map types are available:
PivotTable
PivotTable is a new Data Visualization component that supports multiple layers of data labels on a row or a column edge and automatic calculation of subtotals and totals. Pivot tables allow you to switch data labels from one edge to another to obtain different views of your data.
The following features are supported:
Gantt Chart
Gantt chart is a new Data Visualization in JDeveloper R11 that provides ability to track tasks and resources on a Time axis to assist in project planning. The following Gantt Chart types are supported:
ADF Mobile extends ADF applications to mobile device browsers. It allows developers using JDeveloper to rapidly mobilize an JSF/ADF application by supporting rendering of the UI components on mobile browsers. Developers simply need to develop new views specifically target mobile browsers, without having to re-write application logic components for the mobile application.
New features: