IDE in Action: Oracle JDeveloper 11
Frank Nimphius
Principle Product Manager
www.javapolis.com
Agenda
• Overview and Summary
• JavaEE Development
• Rich Internet Applications (RIA) and Ajax
• Oracle ADF
• Data Visualization
Oracle JDeveloper
Overview and Summary
www.javapolis.com
Oracle JDeveloper Themes
4
• Complete
• Full development lifecycle
• One tool for Java, Web Services, XML, DB, SOA, WebCenter
• Standard
• Support industry standards
• Cross platform (AS and DB)
• Productive
• Improved coding productivity
• Visual and declarative development
• Oracle Application Development Framework (Oracle ADF)
• FREE
www.javapolis.com
JDeveloper 11g Themes
5
• Simplified Design Time Experience
• Simplified Java Development
• Simplified Database Development
• Simplified Enterprise Java Development
www.javapolis.com
Visual and Declarative
6
• WYSIWYG Editors
• JSF, JSP, HTML, Swing
• Visual Page Flow
• JSF, Struts
• Modelers
• DB, Class modeling
• Visual Editors
• XML Schema, XSLT, WSDL
• Process Flow
• BPEL, ESB
www.javapolis.com
JDeveloper for Business Logic Developers
7
• EJB 3.0/JPA, TopLink, ADF Business Components
• Visual Modeler
• Reverse engineer DB to entities
• Declarative editing
• Session Façade creation
• Automatic test-client creation
www.javapolis.com
JDeveloper for Analysts/Designers
8
• UML
• Class Modeling
• Sequence Modeling
• Use Case Modeling
• Activity Modeling
• Code Visualization
• Java Class, EJB
• Database
• Page Flow
• XML, WSDL, XSLT
• BPEL, ESB
• ADF Business Components
www.javapolis.com
JDeveloper for the XML Developer
9
• Editing Framework
• Code Insight
• Properties
• Component palette
• Structure
• Visual xml schema modeler
• XML Compare
• Visual XSLT mapping
• XSLT debugging
• XQuery support
• XPath search
www.javapolis.com
JDeveloper for RIA Developers
10
• JSF 1.2 support
• Improved visual editor
• Easier manipulation
• Ajax rendering
• Improved expression builder
• Inline Editing
• ADF Faces rich client components
• Declarative RIA application development
• Active data channel
• Contextual events
• Highly interactive
Enhanced JSF support
www.javapolis.com
JDeveloper for JavaScript Developers
11
• Helpful editor
• Syntax highlighting
• Brace matching
• Code folding
• Code insight
• Error underlining and audits
• Go to declaration
• JavaScript debugger
• Find usages
• Refactoring
• Structure pane integration New Javascript support
www.javapolis.com
JDeveloper for the Database Developer
12
• Database modeling
• Database object creation
• Database browser
• SQL worksheet
• SQL tuning
• PL/SQL editor/debugger
• Publish PL/SQL based Web services
www.javapolis.com
JDeveloper for the SOA Developer
13
• BPEL Development
• Orchestrate Web Services
• Drag and Drop
• Code Synchronization
• ESB Development
• Visual process editor
• Visual XSLT mapping
• Message Flows
• Transformations
• Routing Rules
www.javapolis.com
Oracle ADF Architecture
14
Source: Please add the source of your data here
Business Services
Model Controller
JSP View
Desktop Browser-Based
Metadata Services (MDS)
Struts
ADFm (JSR 227)
Java EJB Toplink
Office ADF Swing
BAM ADF
BC BI XML Portlet BPEL Web
Services
JSF/ADFc JSF ADF Faces
www.javapolis.com 15
D E M O N S T R A T I O N
JDeveloper – Ajax in Action
Oracle JDeveloper
Design Time Experience
www.javapolis.com
Enhanced Application Navigator
17
• Collapsible Panels
• Hide Less Used Panels
• Related Files Grouped Together
www.javapolis.com
Resource Catalog
18
• Connect to Resource Providers
• Drag/Drop Resources
• Search Resources
• Application server
• Database
• File system
• UDDI Registry
• URL adapter
• WebDAV
www.javapolis.com
Application Overview
19
• Categorized List of All Application Files
• Easily See Where Application Has Errors
• Easily Create New Components
www.javapolis.com
Application Overview
20
www.javapolis.com
File List
21
www.javapolis.com
Improved Component Palette
22
• Collapsible Panels
• Quick Search
• Favorites List
• Recently Used
www.javapolis.com
New Property Inspector
23
• Layout
• Categories
• Searching
Simplified
Java Development
www.javapolis.com
New Features for Coders
25
• Code-editor improvements
• Toolbar, auto highlight, more syntax colors, quick javadoc for functions, better hierarchy navigation
• New code generation
• Constructors, equals & hash code, improved accessors generation
• JUnit 4.0 support
• New profilers
• Memory and CPU
• Run on native JVM
• XML compare and merge conflict
Oracle JDeveloper
JavaEE Development
www.javapolis.com
JavaEE Development Agenda
27
• EJB 3.0/JPA
• JAX-WS Web Services
• Dependency Injection
• JavaServer Faces
Oracle JDeveloper
EJB 3.0 / JPA
www.javapolis.com
From "Good" to "Better"
29
EJB 2.1 CMP
JDO
Proprietary POJO Persistence
EJB Java
Persistence API
www.javapolis.com
JDeveloper EJB 3.0 features
30
• EJB 3.0
• Migration EJB 2.1/POJO -> EJB 3.0
• EJB 3.0 Diagramming
• Entities from database table wizard
• Improved Annotation Support
• Annotation insight
www.javapolis.com 31
D E M O N S T R A T I O N
EJB 3.0 / JPA
Oracle JDeveloper
JAX-WS Web Services
www.javapolis.com
Java EE 5 WS APl
33
• JAX WS 2.0
• Web Services metadata 2.0
• JAXB 2.0
www.javapolis.com
JAX-WS
34
• Java API for XML Web Services
• SOAP messages over http
• Translates API calls from and to SOAP messages
• Uses annotations to define POJO or stateless EJB session bean as Web Service
• @WebService
• @WebMethod
• @PostConstruct
• @PreDestroy
www.javapolis.com
JDeveloper Features for Web Services
35
• Create Java EE 5.0 (JAX-WS) Web services
• Annotations support
• Code insight, property inspector
• Improved WSDL editor
• Drag and drop operations, validation, layout
• New WS-Tester
• Improved http analyzer
• Stub out messages
• Improved WS generation
• Incremental changes, doesn’t override changes
• Support for developing and consuming asynchronous Web Services
www.javapolis.com 36
D E M O N S T R A T I O N
JAX-WS Web Service
Oracle JDeveloper
Dependency Injection
www.javapolis.com
Dependency injection in JEE 5.0
38
www.javapolis.com
Dependency injection
39
• Container can initialize instance variables at time bean is made available
• These techniques can be used to inject:
• Resources,
• Session bean references
• EntityManager
• Web service references
• Common annotations
www.javapolis.com 40
D E M O N S T R A T I O N
Dependency Injection
Oracle JDeveloper
Rich Internet Application
(RIA) Development
www.javapolis.com
Ajax Challenges
42
• Protect developer from having to code too much JavaScript
• Simplify Ajax binding
• Provide declarative development gestures
• Handle browser differences efficiently
• Interoperability of libraries and components
• Security
• Control the browser, not vice versa
www.javapolis.com
ADF Faces RC
43
• 100+ AJAX Enabled JSF Components
• Complete JavaScript API
• Drag and Drop Framework
• Dialog and Popup Framework
• Navigation Menu Framework
• Partial Page Rendering
• Active Data Framework
• Advanced Data Streaming
• Data Visualization Components
www.javapolis.com
ADF Faces Rich Client Samples
44
www.javapolis.com 45
D E M O N S T R A T I O N
ADF Faces RC
Component Demo
www.javapolis.com
Reusability for JSF Page Development
46
• Templating for JSF
• Define a standard template
• Page Fragments
• Develop reusable areas
• Page Regions
• Construct a page from fragments
• Declarative Components
• Bundle components together
www.javapolis.com
Templates
47
• A template is a reusable ADF Faces page that contains place holders for custom page content
• Templates are interpreted at runtime
• Authors can change the template for an existing application without opening the application itself
• Templates can have their own ADF binding file
• Templates can have parameters for the page author to pass information from the inheriting page to the template
• Templates cannot inherit from other templates
www.javapolis.com 48
D E M O N S T R A T I O N
Creating a JSF Template
www.javapolis.com
Page Fragments
49
• Allow you to create parts of a page
• A JSF page can be made up of one or more page fragments
• Page fragments are incomplete JSF pages
• Don't use af:document element enclosed within f:view
• The contents for the page fragment are enclosed within jsp:root
<?xml version='1.0' encoding='windows-1252'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:af="http://xmlns.oracle.com/adf/faces/rich">
<!-- contents for part of a page here -->
</jsp:root>
www.javapolis.com
Declarative Components
50
• Allow you to assemble existing, individual UI
components into one composite, reusable component
• Can be used e.g. to create a custom layout pattern dialog
• Used declaratively in one or more pages
• Can also be used in page templates
• Has pre-defined attributes that can be bound to ADF
www.javapolis.com
Regions
51
• Used in conjunction with ADF bounded task flows
• Encapsulate business logic, process flow, and UI components all in one package
• Can be reused throughout the application
www.javapolis.com
ADFC – Extending JSF Page-Flow
52
• ADF Controller adds functionality on top of the JSF page flow
• Enhanced Reusability
• Out-of-the-box Advance Features
• Declarative Functionality
www.javapolis.com
Task Flows – Reusable Page Flows
53
• A Task flow represents a reusable block of
functionality with a single entry point, defined exit points, and its own memory scope and transaction boundaries.
• Task flows can receive parameters from, and return parameters to, a calling task flow.
www.javapolis.com
A Task Flow
54
www.javapolis.com
Reusable Tasks
55
www.javapolis.com
Reusable Tasks
56
www.javapolis.com
Task Flow Features
57
• Trains - a progression of related pages
• Router activity - conditional routing
• Method call activity
• Wildcard control flow
• Save for later – resume incomplete transactions
• Declarative bookmarking
• Declarative transaction management
• Declarative support for browser back button navigation
• Declarative support for exception handlers
www.javapolis.com 58
D E M O N S T R A T I O N
Creating a Taskflow
www.javapolis.com
Reusable JSF Page Development
59
Pages
www.javapolis.com
Reusable JSF Page Development
60
Pages Template
www.javapolis.com
Reusable JSF Page Development
61
+ =
Pages Template
www.javapolis.com
Reusable JSF Page Development
62
+ =
}
Pages Template
Task Flow
www.javapolis.com
Reusable JSF Page Development
63
+ =
}
Pages Template
Task Flow
Page Fragments
www.javapolis.com
Reusable JSF Page Development
64
+ =
}
Pages Template
Task Flow
Page Fragments
www.javapolis.com
User Interface Events
65
Declarative Events & Wiring
Context
Events & Parameters
Component or Application 1
Component or Application 2
www.javapolis.com 66
D E M O N S T R A T I O N
Adding Taskflows in Region
Oracle JDeveloper
Oracle ADF Development
www.javapolis.com
JSR-227
• Standard data binding
• Uses meta-data to describe business APIs
• Abstracts Business Services
• Exposes consistent client programming API
• Reduces learning curve
• Visual and declarative development
Device Renderer
UI Component Expr. Language
“bindings” Object JSF Page
ADF Binding ADF DataControl
RDBMS
EJB 3.0 Web Service BPEL …
www.javapolis.com
Oracle ADF 11 Architecture
69
Source: Please add the source of your data here
Business Services
Model Controller
JSP View
Desktop Browser-Based
Metadata Services (MDS)
Struts
ADFm (JSR 227)
Java EJB Toplink
Office ADF Swing
BAM ADF
BC BI XML Portlet BPEL Web
Services
JSF/ADFc JSF ADF Faces
www.javapolis.com
New Data Control Types
70
• Business Intelligence (BI)
• Data Warehouse Information
• Business Activity Monitoring (BAM)
• Asynchronous Business Event-Driven Aggregations
• Java Management Extensions (JMX)
• Runtime Configuration Information
• Placeholder Data Control
• Mock-up Sample Data for UI Designers
www.javapolis.com
ADF Model - Databinding
71
• ADF Model
• JSR-227 Data Controls
• Service Oriented Interface
• Abstract implementation from clients
• Loose coupling between services and application
• More Reusability
• Discover and Share Services
• More Productivity
• Drag and Drop Data Binding
www.javapolis.com
Data ControlsD
72
Declarative JSR-227 Controls
Business Services Data Controls Exposed via
JSR-227
www.javapolis.com
Data Binding Design
73
Declarative Data Binding
Data Controls Data Binding
www.javapolis.com
ADF Features
74
• ADF Libraries
• Page templates
• Declarative components
• Task flows
• Data controls
• ADF business components
• ADF Management
• Use Oracle Application Server's Enterprise Manager
• ADF Security
• Permission for task flows, page definitions and ADF business components
www.javapolis.com 75
D E M O N S T R A T I O N
Building Ajax Applications
with JavaEE, ADF and JSF
ADF Framework
Data Visualization
www.javapolis.com
ADF Data Visualization Components
77
• ADF Data Visualization components are a set of rich
interactive ADF Faces components that provide significant graphical and tabular capabilities for analyzing data
• The following Data Visualization components are available in JDeveloper R11:
• Graph
• Gauge
• Geographic Map
• Pivot Table
• Gantt Chart
www.javapolis.com
ADF Data Visualization Gauge
78
• Gauge is a new Data
Visualization component that focuses on identification of problems in data
• Supported Gauge types are:
• Dial:
• Standard and Threshold
• Status Meter:
• Standard and Threshold
• LED
www.javapolis.com
ADF Data Visualization Geographic Map
79
• Geographic Map is a new Data Visualization that provides
functionality of Oracle Spatial within the ADF framework
• Represents business data on a geographic map
• Supports superimposing
multiple layers of information on a single map
• Available Map types are:
• Thematic
• Pie
• Bar
• Point
www.javapolis.com
ADF Data Visualization Pivot Table
80
• Pivot Table 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.
• Supported features include:
• Horizontal and vertical scrolling
• Header and cell formatting
• Drag and drop pivoting
• Automatic totals and subtotals against ADF BC Data Control
• Drilling against BI Data Control
www.javapolis.com
ADF Data Visualization Gantt Chart
81
• 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
www.javapolis.com 82
D E M O N S T R A T I O N
Data Visualization
www.javapolis.com 83
If Time Permits
D E M O N S T R A T I O N
Declarative Components
www.javapolis.com 84
If Time Permits
D E M O N S T R A T I O N
Contextual Events
www.javapolis.com
Oracle JDeveloper Summary
85
• The fully integrated Java, JavaEE and SOA IDE for the enterprise developer
• Supports all kinds of developer types
• Declarative support for business services like EJB/JPA, WebServices, POJO and ADF BC
• ADF Faces Rich Client is Ajax development for everyone – not just for the sophisticated JavaScript expert
• Enhanced JavaServer Faces technology
• Comprehensive support for database development with no additional license attached
• Its free!
www.javapolis.com
Learn More
86
http://otn.oracle.com/jdev
• Downloads
• Learning Resources
• Demos
• Whitepapers
• Webcasts
• Technical Information
• Forums
JDeveloper / ADF 11g Technology Preview 2
Release Now
Available!
www.javapolis.com 87