Oct 6, 2008
Introduction
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.
New
Features
JDeveloper
Core IDE
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.
- Enhanced navigator:
The Application Navigator has
been enhanced to organize your application the way you want. New
categories make it easier for you to find what you are looking for.
Collapsible panels put common elements of your application within easy
reach. Files that make up a composite node are conveniently exposed by
simply clicking on the composite node.
- Improved Component Palette:
The component palette now features collapsible panels and divider
sections to organize related components. A quick search field is
provided to help locate components. You can now add commonly-used
components to your Favorites list for easier access later, and another
panel keeps track of your recently used components.
- New Property Inspector:
The Property Inspector has been redesigned with a new, user-friendly
layout. Property categories have been used consistently throughout the
product to make using the Property Inspector more predictable.
- Application Overview:
The new Application Overview window provides a convenient listing of
all the sources for your application, grouped into helpful categories.
From here, you can get a sense of the overall status of your
application (which sources are incomplete, which have errors, etc) too.
The Application Overview also functions as a way for you to learn about
the various kinds of components you may use in your application, and
easily launch wizards to create them.
- File List:
The File List makes it easier than ever to locate source files that are
part of your project. You can search by file name, file extension,
status, date modified and more.
- Updated appearance:
The JDeveloper development environment has been updated with a
brand-new look.
- Integrated modeless editors:
Many editors for components have been converted to integrated modeless
editors. These appear in the editor area along with the other editors,
and allow for much more productive navigation.
- Contextual linking:
Contextual linking is the concept that as you are working on something,
you should be able to easily get to relevant related resources. For
example, as you are working on defining a page flow for databound
pages, you should be able to easily get to the page definition of those
pages. This concept is now employed wherever it makes sense in the
development environment.
- Go to File: In
addition to
Go to Java Class (Alt+Minus), there is a new option to Go to File
(Ctrl+Alt+Minus) to allow you to quickly navigate to any file visible
from your project.
- Enhanced New Gallery:
The New Gallery contains a search field to make it easier to find the
item you're looking for.
- Global Search:
On the far right of the main JDeveloper toolbar is a new Global Search
field. This field can be used to search across the entire IDE, the help
system, and your project for a word or phrase.
Installer
JDeveloper now makes use of an installer to prevent errors during installation. Features of the installer include:
- Platform-specific (native) installers for Windows and Linux, includind a bundled JDK.
- Generic installer (without a JDK) for all other platforms
- Install into a new or existing Middleware home
- Perform a complete installation, or install just the components you need
- Create shortcuts in the Start menu on Windows
- QuickStart page after installation provides easy access to common tasks
- Installer supports 3 modes: GUI/graphical, console, and silent
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:
- Help runs in a separate window
- New help window optimized for finding
relevant help
- Searching for phrases now returns a
prioritized list of matches
- Ability to search on resources from OTN
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:
- Application server
- Database
- File system
- UDDI Registry
- URL adapter
- WebDAV
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:
- Extension project
- Gallery Item
- Preferences page
- Project properties page
- Data Model (for persistence of
preferences or properties)
- Action
- Addin
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.
Java
Coding and Agile Development
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:
- Code editor toolbar allows quick access
to functions such as
generate accessors, surround with, override method/implementation
interface, reformat ...
- Auto Code Highlight automatically
highlights instances of the selectedi tem in the editor
- Additional syntax color options for
easier code readability
- Quick Javadoc now also works on methods
- Additional Code folding:
- Initial comment blocks are now
foldable (typically standard copyright notices, now conveniently folded
by default)
- Unfolding
Blocks: Blocks can now be unfolded by double clicking directly on the
folded section or by dragging an object onto a folded block. The drag
is especially useful when adding components or text to a highly nested
document
- Folding Highlight: Expanded and
collapsed blocks
now highlight after a transition by briefly fading its background
color. This is especially useful in documents where nested blocks can
be hard to distinguish.
- Show Whitespace
Characters: Renders spaces, new lines, carriage returns, non-breaking
spaces, and tab characters as alternate visible characters
- Overview Popup: View the source at an
overview mark by simply hovering the mouse cursor over the mark
- Structure Pane Popup: View the source for
a method by pressing 'ctrl' while the mouse cursor is over the desired
method
- Breadcrumb
Bar: The breadcrumb bar shows the hierarchy of nodes from the current
caret position up to the top of the file. Hovering the mouse cursor
over a node pops up some information about the node, clicking on the
node navigates the caret to the node location.
- Quick
Outline: A new method to quickly navigate to methods and fields of a
class and its super classes. The 'ghost' window floats just above the
code and contains a tree of the available methods and fields of the
current class and its super classes. Start typing in a filter field to
reduce the visible items, allowing quick and easy selection for
navigation to the desired place.
- Code Peek: The ability to view code in
different files without navigating or opening new editors
- Library search: You can now search the
list of available libraries to find a given class or jar.
Compiler, Runner, Debugger
enhancements
- Java SE 1.6 support: JDeveloper now
supports the use of Java SE 1.6 as a target JDK for projects.
- Debugger
- Step Into Method: The Debugger now has a Step Into Method option.
When the debugger has stopped, you can right click on a method and
choose Step Into Method at Cursor.
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.
- CPU Profiler: The CPU Profiler allows you
to visualize which
methods your application code is executing most often, and includes
method execution counts.
- Memory Profiler: Displays which
parts of the application are using the most memory and helps you detect
memory leaks. It also enables you to investigate which objects are
responsible for holding the most memory.
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
- Branch/Tag, Switch and Merge files,
projects and applications versioned in an SVN repository
- Support for Versioned Properties
including svn:ignore
- Incoming Changes to working copy now
visible in the Pending Changes window
- Support for Annotations
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.
Database
Development
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:
- SQL Worksheet enhancements: script
execution, explain plan, autotrace, code snippets (drag and drop), DBMS
and OWA output
- Creation of external, index organized,
temporary, partitioned (range, hash and list) tables and materialized
views
- Extensive
context menu options to modify objects (for example table rename,
column additions, compilation, index rebuilds, database link testing)
- Browse, query, update, delete, sort, and
filter data including CLOB and BLOB and tracking of changes through
message log
- Export data in multiple formats; export
DDL; import data
- Database reports
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:
- Index-organized tables
- External tables
- Partitioned tables and indexes
- Materialized (including partitioned and
indexed) views and view logs
- Object Collections
- Triggers
- Domain indexes
- Storage properties (tablespace etc)
- Auto-generated column values
- Multiple database object cross
referencing (within or between projects)
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
Deployment
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:
- Oracle WebLogic Server as integrated
container: WLS is now
the integrated server used for testing and debugging web applications
from JDeveloper. In fact, when you install JDeveloper, you also install
a fully-functional WLS server and a domain "DefaultDomain"
preconfigured for running ADF applications. When you right click and
run or debug a web project, the IDE will use this domain as the test
container.
- Integrated WLS: The Integrated WLS
container is
now used in a new way with subtle, but important impact to users. Most
notably, when you run or debug an application, rather than starting the
entire server, the IDE simply deploys the application to the integrated
server. This is significant because during the lifecycle of testing,
fixing, debugging an application, the IDE need only undeploy and
redeploy your application rather than the relatively expensive
operation of stopping and starting the server, thereby decreasing time
spent waiting on the server during the development lifecycle.
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
- -nocompile (to skip compilation of
Project or Workspace file)
- -nodatasources (to exclude datasources
from the IDE)
- -forcerewrite (to rewrite output file
even if it is identical to an existing file)
- -updatewebxmlejbrefs (update EJB
references in web.xml)
UML
Development
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:
- Graphical error feedback when a shape no
longer maps to a semantic element
- Improved visual feedback through the
highlighting of shapes when the user defines relationships between
those shapes
- Improved Handling of in-place edit and
create - the user can re-enter the edit rather than having to create a
new shape
- Visual properties can be set using the
property inspector
- Support for setting default preferences
over multiple objects
- Multi-level Undo/Redo for shapes and
relationships
- Semantic undo/redo support in the Java
Class Diagram
- Increased integration with refactoring in
the Java Class Diagram, such as renaming an attribute
- Copy and Paste of Visual Properties
- New Visual Properties Panels
- New Group Shape
- Enhanced Note Shape
- Bridge and Tunnel Crossing support for
relationships
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
Web
Services Development
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:
- Fast track navigation to all files
implementing a WSDL through a drop down menu
- Extensive drag and drop operations for
typical use cases
- Extensive binding options including EJB
and Pojo
- Editing features to Find Usages, Go to
Declaration, broken reference warnings and various WSDL refactorings
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.
Web
/ Ajax Development
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:
- Syntax highlighting
- Brace matching
- Code folding
- Code insight
- Error underlining and audits
- Find usages
- Refactoring
- Surround-with support
- Go to declaration
- Structure pane integration
- Code reformatting in standalone .js files
- Code editor support for showing
deprecated properties as striked-out
- Code editor support for showing unused
variables/functions/labels are greyed-out
- Audit transforms
- Improved preferences panel for better
support for different JavaScript versions
- More audit rules
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:
- Html selectors
- CSS Pseudo-elements and Pseudo-classes
- Nested selectors
- @media media types
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
- Audit and transforms for invalid,
required and duplicate attributes
- incorrect closing tag reset to default
(for tags with size/width/height attributes)
- Brace matching
- Code insight to show file references to
html/jsp/image targets
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.
EJB
3.0 Development
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.
- Simplified configuration of EJB 3.0
session beans and message driven beans leveraging annotation insight
and property inspector
- EJB 3.0 diagramming support
- Support for JSR 109 Deployment model
- Web Services support via JSR 181
Oracle
TopLink Development
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.
- Definition of persistence units
(persistence.xml) with
graphical or XML configuration support including configuration of
TopLink JPA extensions
- JPA Entity generation and re-generation
from online and offline schemas as well as through diagram creation
- Definition of JPA Object-Relational
Mapping (orm.xml) files with graphical editor or direct XML
configuration
- Attribute mapping is supported through
annotations and XML
- JPA entity generation from online and
offline tables with persistence unit generation
- Assistance in configuration of JPA
entities in code with annotation insight and completion
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.
- Support offered for mapping with TopLink
original packaging
(oracle.toplink.*) as well as new support for the EclipseLink packaging
(org.eclipse.persistence.*)
- Query configuration support added for
Report query as well as result ordering and batch and join optimizations
- Additional mapping type support added
- More
flexible mapping converter support added to facilitate usage of custom
data types or conversion operations between database values and domain
model representation
- Support for configuration of additional
optimistic locking policies which can be used when relational schema
changes are not an option
- Returning policy configuration
enabling the usage of trigger or stored procedure assigned values being
reflected in the TopLink object cache
- Cache configuration now supports
shared/isolated, expiration, and cache coordination modes on each
persistent type's descriptor
- The
sessions configuration (sessions.xml) has been enhanced to include
application server platform selection, additional data source options,
cache coordination usage, exclusive connection pooling for use with
VPD/OLS, and more detailed logging configuration
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.
For more information on Oracle TopLink
features, see the Oracle TopLink 11g (11.1.1.0.0) Release
Notes
ADF
Framework
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:
- Pagedef and task flow breakpoints: Create
a breakpoint on a task flow activity or an iterator or binding in a
pagedef file.
- ADF
Structure Pane and ADF Data Window: During a debugging session, the ADF
Structure Pane shows the pages, regions and task flows that exist
within the current view port. When you select an item in the pane, the
ADF Data Window shows the data within the selected pagedef, page,
region or task flow, as well as within the ADF context and scoped
variables.
- EL Evaluator Window: Evaluates any
arbitrary EL expression.
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:
- Page templates
- Declarative components
- Task flows
- Data controls
- ADF business components
ADF Security
Security has been enhanced to include:
- Permission enforcement for task flows,
page definitions and ADF business components.
- Support for Oracle Platform Security
(OPS).
ADF
Faces Rich Client
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.
- Over 100+ AJAX-enabled components (See
bali for complete list)
- Complete JavaScript API, providing
client-side support for components
- Drag and Drop Framework
- Dialog and Popup Framework
- Navigation Menu Framework
- Increased reusability:
- Support for Page templates, reusable
page regions, and declarative components.
- Built-in Internationalization and
Accessiblity support
- Partial Page Rendering
- Active Data Framework--Oracle's AJAX
"server push" technology
- Advanced Data Streaming
- Improves performance of data delivery
to the browser
- Support for Skinning
- JSF 1.2 Support
- Integation with ADFc to support TaskFlows
and bookmarking
- Integration with ADFm to support data
bindings.
- Oracle ADF Security Support
ADF
Databinding
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:
- Data control picker simplifies the
process of binding data to existing UI components.
- Improved binding editors make the process
of creating and modifying bindings more intuitive.
- New bindings overview editor streamlines
navigation between UI components and their binding information.
- Refactoring allows you to safely rename,
move and delete bindings.
- "Design time at runtime" allows site
managers and end users to customize bindings at runtime.
New data control types
Additional data control types extend the
data control functionality:
- JMX data control, based on MBeans
deployed to a JMX server.
- Placeholder
data control: a new data control based on simple, dummy data. Enables a
"UI first" development model where user interface developers use drag
and drop databinding to build pages that can later be modified to bind
to real application data.
New databound components
These new databound components simplify the
creation of frequently required data objects:
- Dynamic form
- Regions, containing task flows:
- Task flow can be specified at design
time or run time (static or dynamic)
- Contextual event framework for
event-based communication between regions in a page
- List of Values (LOV) dialog and choice
list
- Search form
- Quick search
- Graphs and maps
ADF
Business Components
Business components have been further
enhanced to provide extensive new and improved functionality:
- Define Lists of Values (LOVs) on view
object attributes declaratively, including the ability to:
- Configure the display style
(including both inline dropdowns for shorter lists and popup windows
for longer lists)
- Filter the choices in the list based
on user input
- Autofill the attribute value if user
input indentifies a unique match
- Automatically use other attribute
values in the current row to parameterize "cascading" lists
- Derive default values and calculated
attributes using standard Groovy
language expressions (JSR-241),
with automatic recalculation
- Simplified development and maintenance of
View Objects:
- Define
and apply named view criteria "filters" declaratively, allowing
multiple alternative custom queries on a single view object
- Create outer joins declaratively
- Define default where clause and order
by without typing SQL or referencing underlying column names
- Create static view objects, based on
a translatable set of static values.
- Eliminate code for even more kinds of
common business validation scenarios with enhanced declarative
validation rules support
- Control when a validation rule is
executed by specifying a conditional execution expression or triggering
attributes
- Create parameterized error messages
and warnings saved in external resource bundles
- New validation rule types simplify:
- Checking
an attribute value against a computed aggregate (sum, average, count)
over composed child entities using the "Collection" rule
- Testing existence of a foreign
key value using the "Key Exists" rule
- Guaranteeing an attribute value
is unique (both for primary keys and new "alternate keys") using the
"Unique Key" rule
- Authoring more complex rules in
the standard Groovy scripting language using the "Expression" rule
- Comparing one attribute value to
another in the same entity
- Business logic groups allow you to
encapsulate and reuse a set of related control hints, default values,
and validation logic.
- Test and debug your application modules
more easily using new enhancements to the Business Components Browser:
- Test LOVs (lists of values)
- Show translated strings for different
locales
- Test application module custom methods
- Apply named view criteria
- Test polymorphic view objects
- Define shared application module
instances so all end-users can share common lookup list data
- Edit business components more flexibly
- New modeless "overview" editors allow
multiple objects to remain open for editing
- Source
view of ADF Business Components XML descriptors is now editable, with
schema-driven code-insight assistance and error highlighting
- Click on hyperlnks to navigate to
related objects
- Undo support allows you to undo edits
made both to the source or "overview" editors
- Improved editing of component
settings and application module configurations via the property
inspector
- Define property sets to reuse groups of
UI hints and custom properties across multiple business components
and/or attributes
- Improved flexibility for translatable
resource strings, with support for:
- Property files
- XLIFF files (Standard XML-based
resource bundles), or
- Java resource bundles
- Automatcally handle data that is
effective only for a specific period of time
- Customize business components at runtime
using "design time at runtime"
ADF
Task Flow
- Bounded (nested) task flows. A bounded
task flow represents
a reusable block of task flow functionality with a single entry point,
defined exit points, and its own memory scope (pageFlowScope) and
transaction boundaries. Bounded task flows can receive parameters from,
and return parameters to, a calling task flow. A bounded task flow can
be incorporated in an application in various ways:
- As a set of pages and other
activities in a larger application flow;
- As a region, providing navigation
between page fragments in a single containing page;
- Within a modal dialog, launched from
a page.
- Trains.
A train is a progression of related pages guiding the end user through
a series of steps; each step in a train contains a UI component showing
the user's progress and allowing them to return to earlier steps.
- Router activity: Provides conditional
routing depending on the outcome of an expression.
- Method call activity: Invokes a Java
method from within a task flow.
- Wildcard control flow: Allows a developer
to add a global (wildcard) navigation rule to a diagram.
- Parent action: Allows a task flow in a
region to navigate the page containing the region.
- Save for later: Allows incomplete
transactions to be resumed at a later time.
- Explicit save for later: End users
save incomplete transactions and resume them later.
- Implicit save: An end user resumes a
session that has timed out or otherwise ended without saving data.
- Task flow templates: A base task flow
that can be reused as a template for new task flows.
- Declarative bookmarking: Automatically
constructs a URL (with optional parameters) for bookmarking a page.
- Declarative
transaction management: Specify whether a bounded task flow starts a
new transaction or inherits an existing transaction.
- Declarative support for browser back
button navigation.
- Declarative support for exception
handlers.
- Automatic
merging of task flow files at run time, enabling developers to add to
an existing task flow by creating additional task flows in a well-known
directory.
- Support for customization of task flows
at runtime using "design time at runtime".
- Support for running independent instances
of the same task flow in different browser windows.
- Support for calling a BPEL process from
an ADF task flow.
ADF
Swing
- Runtime support for three new data-bound
UI components: Shuttle Panel, Tree Table, and LOV button
- ADF Business Component Browser has been
rewritten as a showcase of ADF Swing functionality
ADF
Data Visualization
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:
- First-class ADF Faces components
- Design time creation using data control
palette, JSF visual editor, property inspector and component palette
- Support for data binding to standard
rowset as well hierarchical data controls
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:
- New look and feel
- New graph types: Funnel, Floating Bar
Graph, Fit to Curve
- Flash rendering
- Flash animation effects on initial
display and data change
- SVG rendering
- Interactivity: zooming, scrolling, time
selector window, line and legend highlighting/fading, dynamic reference
lines and areas
- Advanced JSF graph tag as well as
simplified tags for 17 commonly used graph types
- UI for design time data binding and
editing
Gauge
Gauge is a Data Visualization component that
focuses on identification of problems in data. The available Gauge
types are:
- Dial: standard and threshold
- Status Meter: standard and threshold
- Vertical Status Meter: standard and
threshold
- LED
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:
- Virtualized data fetching
- Horizontal & vertical scrolling
- Cell level formatting support
- Skinning support
- Row and Column Sizing
- Drag and drop pivoting
- Support for automatic totals and
subtotals against ADF BC Data Control
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:
- Project Gantt (focuses on project
management)
- Scheduling Gantt (focuses on resource
management)
- Resource Utilization Gantt (focuses on
resource utilization)
ADF
Mobile
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:
- Additional mobile device browser support:
- BlackBerry Browser version 4.x or
above
- Windows Mobile Pocket Internet
Explorer (Windows Mobile 5 and 6)
- Nokia S60 Browser(PPR does not yet
work)
- Trinidad
component support: ADF Mobile UI components now supports Trinidad
components, which are supported by the Apache MyFaces Trinidad project.
This means:
- A richer set of UI components are
available for ADF Mobile that provides advanced feature such as partial
page rendering.
- Any
developer or mobile device vendor can contribute to ADF Mobile via
Trinidad to enhance ADF Mobile features and platform support.