Upload
wilfred-van-der-deijl
View
462
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Oracle OpenWorld 2014 presentation launching the ADF EMG XML DataControl. A new (free) open source tool to work with any XML data in an Oracle ADF Application. Highly configurable and flexible.
Citation preview
ADF EMGXML Data ControlPowerful and Easy ADF Data Control for XML data
About Us
Richard OlrichsMNwww.olrichs.nl@richardolrichs
Wilfred van der DeijlThe Future Groupwww.redheap.com@wilfreddeijl
AgendaShort introductionBrief historyAlternativesLive product demoTheoretical summary of the demo
Short Introduction● Goal: An easy way to handle XML in ADF● Any XML element can be runtime data
○ XML payload in SOA/BPM Human Task○ SOAP Web Service response○ RESTful XML API○ XML column in database○ Static file○ and more
Short IntroductionADF abstraction through Data Controls
Short Introduction● XML Schema is the key● XML DataControl gets its structure from XSD● Runtime XML document can come from
anywhere○ Human task payload, Static resource, Web service,
or… wherever you like
XML DataControl History● Development started at MN in August 2012● Adopted by Spir-it since March 2014● Open to the public
○ ADF EMG sub project○ https://adfxmldc.atlassian.net/wiki○ Available through Help > Check For Updates
AlternativesCalling WebService from ADF
1. ADF WebService DataControl
2. JAX-WS Proxy with Bean DataControl
3. Programmatic Business Components
ADF WebService DataControlAlternatives
● Not customizable, for simple web services
● Dates and enumerations not supported
● Only for simple web services like stock info or weather info
JAX-WS Proxy with Bean DCAlternatives
● Lots of work:○ Generate JAX-WS Proxy classes○ Domain POJO’s○ Mapper classes (and back).
● Labor intensive when services change
● JAX-WS Proxy cannot be used directly as bean DataControl○ Dates and enumerations not supported○ JAXBElement getters/setters not supported
● Lot of work: ○ JAX-WS Proxy○ ViewObjects○ EntityObjects○ Mappers (and back)
● BC is very database (SQL) centric○ Commit, Rollback, Fault-In selects, locking,
connection pooling, etcetera● Requires extensive coding in ADF BC base
classes
Programmatic ADF BCAlternatives
ADF EMG
ADF EMG
ADF EMG
Demo TimeADF EMG XML DataControl
ADF EMG XML DataControl● Minimal effort to setup, yet powerful and
customizable● JDeveloper 11.1.1 and 12.1.3
Powerful Providers● Data Provider - Fetch XML Element● Customization - Supplies customization classes● Type Mapper - Map XML to Java types● Structure Provider - Builds DC structure from XSD
DataProvider Nesting● Plain DataProviders
○ WSDataProvider - Web Service○ ELDataProvider - Expression Language○ ResourceDataProvider - XML file from classpath
● Nesting DataProviders○ Can manipulate dynamic parameters going into the
nested dataprovider○ Get XML from nested provider and can manipulate it
before returning it to the caller
Nesting DataProviders● XSL Transformation● XML Schema Validation● Caching● Multi Nesting
○ UnionFilter - Combines result from multiple providers○ Build your own...
WSDataProviderEmployeeService
<Employee> <Type>MGR</Type> …</Employee>
WSDataProviderReferenceDataService
WSDataProviderEmployeeService
<Employee> <Type>MGR</Type> …</Employee>
<EmployeeTypes> <Type> <Code>MGR</Code> <Desc>Manager</Desc> </Type> …</EmployeeTypes>
WSDataProviderReferenceDataService
WSDataProviderEmployeeService
UnionFilter
<Employee> <Type>MGR</Type> …</Employee>
<EmployeeTypes> <Type> <Code>MGR</Code> <Desc>Manager</Desc> </Type> …</EmployeeTypes>
<Union> <Employee> … </Employee> <EmployeeTypes> ... </EmployeeTypes></Union>
WSDataProviderReferenceDataService
WSDataProviderEmployeeService
UnionFilter
XSLFilter
<Employee> <Type>MGR</Type> …</Employee>
<EmployeeTypes> <Type> <Code>MGR</Code> <Desc>Manager</Desc> </Type> …</EmployeeTypes>
<Employee> <Type>MGR</Type> <TypeDesc>Manager</TypeDesc> …</Employee>
<Union> <Employee> … </Employee> <EmployeeTypes> ... </EmployeeTypes></Union>
WSDataProviderReferenceDataService
WSDataProviderEmployeeService
CacheFilter
UnionFilter
XSLFilter
<Employee> <Type>MGR</Type> …</Employee>
<EmployeeTypes> <Type> <Code>MGR</Code> <Desc>Manager</Desc> </Type> …</EmployeeTypes>
<Employee> <Type>MGR</Type> <TypeDesc>Manager</TypeDesc> …</Employee>
<Union> <Employee> … </Employee> <EmployeeTypes> ... </EmployeeTypes></Union>
Java Customizers● Java Classes with Annotations● Can alter structure and behavior of
datacontrol elements○ Calculated Attributes○ Transient Attributes○ Attribute Validation○ Element Validation○ Post Attribute Change○ Post Element Created○ Custom operations/methods
Wiki - adfxmldc.atlassian.net/wiki
Next StepsDownload from JDev Update Center and follow 5 Minute Getting Started from wiki
Subscribe to ADF EMG:http://www.adfemg.org
Follow XML DataControl development:https://adfxmldc.atlassian.net/wiki
Questions
Demo shots
Creating Data Control
Initial Data Controlin 2 minutes
Dynamic Parameter from DataControls.dcx
Drag-DropData Control
onto Page
Dynamic Parameter value (typically from EL)
Initial Task Flowin 5 minutes
Which Data Collection is this customizing ?
Calculated (Read Only) Attribute
Transient (Read Write) Attribute
Attribute Validation
Register Customization Class(es) with Data Control
Calculated Attribute
Transient Attribute
Transient Attribute
Calculated Attribute
Attribute Validation