java ee: sp extendable and functional...sp #javaee @dblevins @tomitribe common mistakes you will...
TRANSCRIPT
![Page 1: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/1.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Java EE:Extendable and Functional
David BlevinsTomitribe
![Page 2: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/2.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Talk Overview
• Part 1: Extensibility• CDI Scopes• Connectors• Java EE 6-7
• Part 2: Functions• New API Opportunities with Java 8• Killing annotations• Shift from Declarative to Programmatic• Java EE 8?
![Page 3: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/3.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Part 1: ExtendableCDI Scopes
![Page 4: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/4.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Background
• EJB and CDI Alignment• EJB slowly being deprecated• Functionality moving to CDI• CDI significantly more extendable
![Page 5: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/5.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
CDI and EJB Under the Covers
![Page 6: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/6.jpg)
@dblevins @tomitribe #JavaEE
QC
on S
PProxy (Fake)
Proxy (Fake)
Interceptors
Decorators
Instance (Real)
Security
Transaction
Interceptors
Decorators
Instance (Real)
1. Resolution
2. Services
3. Invocation
(Pool)1. Resolution
2. Services
3. Invocation
(Context/Scope)
CDI 1.0 EJB 3.1
![Page 7: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/7.jpg)
@dblevins @tomitribe #JavaEE
QC
on S
PProxy (Fake)
Proxy (Fake)
Security
Transaction
Interceptors
Decorators
Instance (Real)
1. Resolution
2. Services
3. Invocation
(Pool)1. Resolution
2. Services
3. Invocation
(Context/Scope)
CDI 1.1 EJB 3.2
Transaction
Interceptors
Decorators
Instance (Real)
![Page 8: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/8.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
EJB/CDI Lifecycle Lineup
• @Singleton
• same as CDI @ApplicationScoped
• @Stateful
• applies to any CDI Scope, not just @SessionScoped
• @Stateless
• no CDI equivalent
• @RequestScoped sort of close(ish)
![Page 9: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/9.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Implementing a Scope
• Create a new Scope Annotation
• Create an implementation of Context
• Register the Scope and Context via an Extension
• Mark the boundaries
• Logical concept
• Always different
![Page 10: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/10.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Custom Scope Examples
![Page 11: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/11.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
http://tomitribe.io/projects/microscoped
![Page 12: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/12.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Common Mistakes you will make
• Not putting a beans.xml in your app (Java EE 6)• No CDI for you!
• Not understanding @Typed• Psst, think @Local from EJB• Bites you when using @Produces
• Not understanding what Dependent and NormalScope• Dependent == plain object• NormalScoped == proxied object• Bites you when creating custom scopes
![Page 13: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/13.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Part 1: ExtendableConnectors
![Page 14: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/14.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Inbound Connectors(aka MDBs)
![Page 15: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/15.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
The following are all false
• MDBs are for JMS
• MDBs must be asynchronous
• A MessageListener interface has one method which returns ‘void’
• MDBs are always pooled
• MDBs are stateless
![Page 16: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/16.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
JMS MDB in Java EE 7
![Page 17: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/17.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Title Text
• Body Level One• Body Level Two• Body Level Three• Body Level Four• Body Level Five
![Page 18: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/18.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Title Text
• Body Level One• Body Level Two• Body Level Three• Body Level Four• Body Level Five
Bad Configuration
![Page 19: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/19.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Title Text
• Body Level One• Body Level Two• Body Level Three• Body Level Four• Body Level Five
Boiler Plate
![Page 20: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/20.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Title Text
• Body Level One• Body Level Two• Body Level Three• Body Level Four• Body Level Five
Only Useful Line of Code
![Page 21: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/21.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
JMS MDB in Java EE 8
![Page 22: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/22.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Oh yeah.
![Page 23: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/23.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Custom Connector Examples
![Page 24: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/24.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
https://tomitribe.io/projects/chatterbox
https://tomitribe.io/projects/sheldon
![Page 25: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/25.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Part 2: Functional(Ideas for the Future)
![Page 26: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/26.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Eras of Java EE
• 1998 (start)• 2001 (strong) • 2006 (start)
• 2009 (strong)• 2014* (start)
• ???? (strong)
XML Annotation Lambda
![Page 27: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/27.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Opportunity for Impact
• From Declarative to Programmatic• From Component-side to Caller-side• Large decrease in annotation and class overhead• Logic is mobileImpact of Opportunity• Potential Growth in mixed container and “API” code• Lifecycle compromises might need to be made• Will take time and effort (join in!)
![Page 28: Java EE: SP Extendable and Functional...SP #JavaEE @dblevins @tomitribe Common Mistakes you will make • Not putting a beans.xml in your app (Java EE 6) • No CDI for you! • Not](https://reader034.vdocuments.mx/reader034/viewer/2022050717/5e86dd18bc9c7922e7245204/html5/thumbnails/28.jpg)
QC
on S
P
@dblevins @tomitribe #JavaEE
Thank You!