SlideShare una empresa de Scribd logo
1 de 45
Practical RESTful Persistence
with EclipseLink JPA-RS
Shaun Smith
Oracle

#DV13 #JPARS

@shaunMsmith
•
•
•
•

JPA 2.0 (EE 6) and 2.1 (EE 7) reference implementation
JPA provider in GlassFish and Oracle WebLogic
Project founded on mature Oracle TopLink codebase
EPL and EDL licensed open source JPA and JAXB
implementation

#DV13 #JPARS

@shaunMsmith
Browser

Database

#DV13 #JPARS

@shaunMsmith
Browser

Java

Database

#DV13 #JPARS

@shaunMsmith
Browser

Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS

Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
EclipseLink JAXB / JSON Binding
Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
EclipseLink MOXy
Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
EclipseLink MOXy
Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
Browser
HTML5

JAX-RS
EclipseLink MOXy
Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
EclipseLink MOXy
{
id: 5,
…
}

Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
{
id: 5,
…
}

JAX-RS
EclipseLink MOXy
Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
EclipseLink MOXy
Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
EclipseLink MOXy
Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
Binding Persistence
EclipseLink MOXy
XML / JSON

Java
Java Persistence
EclipseLink JPA
Relational / NoSQL

Database

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
Binding Persistence
EclipseLink MOXy
XML / JSON

Java
Java Persistence
EclipseLink JPA
Relational / NoSQL

Database

#DV13 #JPARS

@shaunMsmith
EclipseLink MOXy
•
•
•

JAXB for Java/XML binding—covert Java to/from XML
Java/JSON binding—convert Java to/from JSON
Currently no Java/JSON binding standard

• Java API for JSON Processing (JSR 535) is parsing, not binding
• EclipseLink interprets JAXB XML bindings for JSON
• Content-type selectable by setting property on
Marshaller/Unmarshaller

#DV13 #JPARS

@shaunMsmith
XML and JSON from JAXB Mappings

{
"phone-numbers" : [ {
"id" : 2,
"num" : "512-555-9999",
"type" : "mobile"
} ],
"address" : {
"city" : "New York",
"id" : 1,
"street" : "Central Park East"
},
"firstName" : "Woody",
"id" : 1,
"lastName" : “Allen"

<?xml version="1.0" encoding="UTF-8"?>
<customer>
<phone-numbers>
<phone-number>
<id>2</id>
<num>512-555-1234</num>
<type>home</type>
</phone-number>
</phone-numbers>
<address>
<city>New York</city>
<id>1</id>
<street>Central Park East</street>
</address>
<firstName>Bill</firstName>
<id>1</id>
<lastName>Allen</lastName>
</customer>

}

#DV13 #JPARS

@shaunMsmith
Challenges – Binding JPA Entities to
XML/JSON
<customer>
<phone-numbers>
<phone-number>
<id>1</id>
...
<type>mobile</type>
</phone-number>
</phone-numbers>
</customer>

•
•
•

JAXB

Composite Keys/Embedded Key Classes
Byte Code Weaving
Bidirectional/Cyclical Relationships

#DV13 #JPARS

JPA

@shaunMsmith
Bidirectional Relationship
@Entity
public class Customer{
...
@OneToMany(mappedBy="owner")
private List<Phone> phones;
}
@Entity
public class Phone{
...
@ManyToOne
private Customer owner;
}

#DV13 #JPARS

@shaunMsmith
What about @XmlTransient?
@Entity
public class Customer{
...
@OneToMany(mappedBy=“owner")
private List<Phone> phones;
}
@Entity
public class Phone{
...
@ManyToOne
@XmlTransient
private Customer owner;
}

#DV13 #JPARS

@shaunMsmith
With @XmlTransient
Loses the relationship!

owner

Customer
phones

#DV13 #JPARS

Phone

<customer>
<phone-numbers>
<phone-number>
<id>1</id>
...
<type>mobile</type>
</phone-number>
</phone-numbers>
</customer>

Marshall
Marshall

X

Customer

Unmarshall
Unmarshall

Phone

phones

@shaunMsmith
EclipseLink XmlInverseReference
@Entity
public class Customer{
...
@OneToMany(mappedBy=“owner")
private List<Phone> phones;
}
@Entity
public class Phone{
...
@ManyToOne
@XmlInverseReference(mappedBy=“phones")
private Customer owner;
}

#DV13 #JPARS

@shaunMsmith
With @XmlInverseReference
EclipseLink restores relationships on unmarshall!

owner

Customer
phones

#DV13 #JPARS

Phone

<customer>
<phone-numbers>
<phone-number>
<id>1</id>
...
<type>mobile</type>
</phone-number>
</phone-numbers>
</customer>

Marshall
Marshall

owner

Customer

Unmarshall
Unmarshall

Phone

phones

@shaunMsmith
Demo
#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
JAX-RS
Binding Persistence
EclipseLink MOXy
XML / JSON

Java
Java Persistence
EclipseLink JPA
Relational / NoSQL

Database

#DV13 #JPARS

@shaunMsmith
JAX-RS with JPA Example
public class InvoiceService {...

public Invoice read(int id) {
return null;
}
...
#DV13 #JPARS

@shaunMsmith
JAX-RS with JPA Example
@Stateless
public class InvoiceService {...

public Invoice read(int id) {
return entityManager.find(Invoice.class, id);
}
...
#DV13 #JPARS

@shaunMsmith
JAX-RS with JPA Example
@Path("/invoice")
@Stateless
public class InvoiceService {...

public Invoice read(int id) {
return entityManager.find(Invoice.class, id);
}
...
#DV13 #JPARS

http://[machine]:[port]/[web-context]/invoice
http://[machine]:[port]/[web-context]/invoice
@shaunMsmith
JAX-RS with JPA Example
@Path("/invoice")
@Stateless
public class InvoiceService {...

@Path("{id}”)
public Invoice read(@PathParam("id") int id) {
return entityManager.find(Invoice.class, id);
}
...
#DV13 #JPARS

http://[machine]:[port]/[web-context]/invoice/4
http://[machine]:[port]/[web-context]/invoice/4
@shaunMsmith
JAX-RS with JPA Example
@Path("/invoice")
@Stateless
public class InvoiceService {...
@GET
@Path("{id}”)
public Invoice read(int id) {
return entityManager.find(Invoice.class, id);
}
...
#DV13 #JPARS

GET http://[machine]:[port]/[web-context]/invoice/4
GET http://[machine]:[port]/[web-context]/invoice/4
@shaunMsmith
JAX-RS with JPA Example
@Path("/invoice")
@Stateless
public class InvoiceService {...
@Produces({"application/xml"})
@GET
@Path("{id}")
public Invoice read(@PathParam("id") int id) {
return entityManager.find(Invoice.class, id);
}
...
#DV13 #JPARS

GET http://[machine]:[port]/[web-context]/invoice/4
GET http://[machine]:[port]/[web-context]/invoice/4
@shaunMsmith
JAX-RS with JPA

GET http://.../invoice/4
GET http://.../invoice/4
http://.../invoice/4 mapped to
http://.../invoice/4 mapped to
JAX-RS
JAX-RS
beanGET http://.../invoice/4 mapped to method
beanGET http://.../invoice/4 mapped to method

Invoice Bean
GET
GET
GET
GET
GET
GET
GET
GET

Bean uses JPA
Bean uses JPA

Contract Bean
GET
GET
GET
GET
GET
GET

Payment Bean
GET
GET
GET
GET
GET
GET

...

Accounting PU

JPA

#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
JAX-RS
EclipseLink MOXy
EclipseLink MOXy
Java
Java
EclipseLink JPA
EclipseLink JPA
JPA-RS
JPA-RS
Database

#DV13 #JPARS

@shaunMsmith
EclipseLink JPA-RS
•

Automatically provides REST operations for entities in
persistence unit (GET, PUT, POST, DELETE)

•

Automatic generation of XML and JSON bindings
• Leverages EclipseLink’s JAXB/JPA fidelity features to avoid lossy
transformations

•

Automatic publication of REST API metadata

#DV13 #JPARS

@shaunMsmith
EclipseLink JPA-RS
•

Supports invocation of named queries via HTTP

•

Server side caching—EclipseLink clustered cache

•

Automatic injection of links for entity relationships
• Default Resource Model generation

#DV13 #JPARS

@shaunMsmith
{

"id": 2,
"city": ”Toronto",
…
}

...

Browser

"id": 1,
"lastName": "Smith",
…
"address": {
"_link": {
"href": "http:/…/Address/2",
"method": "GET",
"rel": "self"
}
}

{

1
1

2
2
...

Java

Database
#DV13 #JPARS

@shaunMsmith
Configuring JPA-RS
•

Add JPA-RS web fragment jar to WEB-INF/lib!

#DV13 #JPARS

@shaunMsmith
JPA-RS

GET http://.../persistence/Accounting/Invoice/4
GET http://.../persistence/Accounting/Invoice/4
JAX-RS http://.../persistence/Accounting/Invoice/4
JAX-RS http://.../persistence/Accounting/Invoice/4
JAX-RS
JAX-RS
mapped to JPA-RS service
mapped to JPA-RS service

Accounting

JPA-RS
JPA-RS maps URI
JPA-RS maps URI
http://.../persistence/Accounting/Invoice/4 to
http://.../persistence/Accounting/Invoice/4 to
Human Resources
Accounting PU and Invoice entity
Accounting PU and Invoice Benefits
entity
...

JPA

#DV13 #JPARS

@shaunMsmith
Demo
#DV13 #JPARS

@shaunMsmith
Demo Model

#DV13 #JPARS

@shaunMsmith
EclipseLink JPA-RS Roadmap
•

Resource Model

• Scope of resource
• Entity format
• partial entities/projections
• Configuration
• URL mapping/customization
• Manage Entity exposure
• Meta-data
• JSON Schema? Swagger? ...
#DV13 #JPARS

@shaunMsmith
Browser
JAX-RS
EclipseLink MOXy
Java
EclipseLink JPA
Database

#DV13 #JPARS

@shaunMsmith
Summary
•
•
•

Java EE stack has (most of) what you need to build Thin Server
Architecture applications
You have to be aware of various impedance mismatches
EclipseLink JPA-RS
• Integrates JAX-RS / JAXB / JPA
• Eliminates JAX-RS boilerplate for data access
• Simplifies Java EE Thin Server Architecture applications

☛ www.eclipse.org/eclipselink
#DV13 #JPARS

@shaunMsmith
The preceding is intended to outline our general product
direction. It is intended for information purposes only, and may
not be incorporated into any contract. It is not a commitment to
deliver any material, code, or functionality, and should not be
relied upon in making purchasing decisions. The development,
release, and timing of any features or functionality described for
Oracle’s products remains at the sole discretion of Oracle.

#DV13 #JPARS

@shaunMsmith

Más contenido relacionado

La actualidad más candente

JAX-RS 2.0: What’s New in JSR 339 ?
JAX-RS 2.0: What’s New in JSR 339 ?JAX-RS 2.0: What’s New in JSR 339 ?
JAX-RS 2.0: What’s New in JSR 339 ?Arun Gupta
 
Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)Hamed Hatami
 
SD Forum 1999 XML Lessons Learned
SD Forum 1999 XML Lessons LearnedSD Forum 1999 XML Lessons Learned
SD Forum 1999 XML Lessons LearnedTed Leung
 
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsJava EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsMurat Yener
 
What's coming in Java EE 8
What's coming in Java EE 8What's coming in Java EE 8
What's coming in Java EE 8David Delabassee
 
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012Arun Gupta
 
Java Web Programming [3/9] : Servlet Advanced
Java Web Programming [3/9] : Servlet AdvancedJava Web Programming [3/9] : Servlet Advanced
Java Web Programming [3/9] : Servlet AdvancedIMC Institute
 
JSONB introduction and comparison with other frameworks
JSONB introduction and comparison with other frameworksJSONB introduction and comparison with other frameworks
JSONB introduction and comparison with other frameworksDmitry Kornilov
 
Java EE Introduction
Java EE IntroductionJava EE Introduction
Java EE Introductionejlp12
 
Java Web Programming [4/9] : JSP Basic
Java Web Programming [4/9] : JSP BasicJava Web Programming [4/9] : JSP Basic
Java Web Programming [4/9] : JSP BasicIMC Institute
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Reza Rahman
 
Sharding using MySQL and PHP
Sharding using MySQL and PHPSharding using MySQL and PHP
Sharding using MySQL and PHPMats Kindahl
 
15 expression-language
15 expression-language15 expression-language
15 expression-languagesnopteck
 
JSP Standard Tag Library
JSP Standard Tag LibraryJSP Standard Tag Library
JSP Standard Tag LibraryIlio Catallo
 
What's new in the Java API for JSON Binding
What's new in the Java API for JSON BindingWhat's new in the Java API for JSON Binding
What's new in the Java API for JSON BindingDmitry Kornilov
 
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUGArun Gupta
 

La actualidad más candente (19)

JAX-RS 2.0: What’s New in JSR 339 ?
JAX-RS 2.0: What’s New in JSR 339 ?JAX-RS 2.0: What’s New in JSR 339 ?
JAX-RS 2.0: What’s New in JSR 339 ?
 
Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)
 
Move from J2EE to Java EE
Move from J2EE to Java EEMove from J2EE to Java EE
Move from J2EE to Java EE
 
SD Forum 1999 XML Lessons Learned
SD Forum 1999 XML Lessons LearnedSD Forum 1999 XML Lessons Learned
SD Forum 1999 XML Lessons Learned
 
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsJava EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
 
JSON-B for CZJUG
JSON-B for CZJUGJSON-B for CZJUG
JSON-B for CZJUG
 
What's coming in Java EE 8
What's coming in Java EE 8What's coming in Java EE 8
What's coming in Java EE 8
 
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
JAX-RS 2.0: RESTful Web services on steroids at Geecon 2012
 
Java Web Programming [3/9] : Servlet Advanced
Java Web Programming [3/9] : Servlet AdvancedJava Web Programming [3/9] : Servlet Advanced
Java Web Programming [3/9] : Servlet Advanced
 
JSONB introduction and comparison with other frameworks
JSONB introduction and comparison with other frameworksJSONB introduction and comparison with other frameworks
JSONB introduction and comparison with other frameworks
 
Java EE Introduction
Java EE IntroductionJava EE Introduction
Java EE Introduction
 
Java Web Programming [4/9] : JSP Basic
Java Web Programming [4/9] : JSP BasicJava Web Programming [4/9] : JSP Basic
Java Web Programming [4/9] : JSP Basic
 
Jdbc
JdbcJdbc
Jdbc
 
Have You Seen Java EE Lately?
Have You Seen Java EE Lately?Have You Seen Java EE Lately?
Have You Seen Java EE Lately?
 
Sharding using MySQL and PHP
Sharding using MySQL and PHPSharding using MySQL and PHP
Sharding using MySQL and PHP
 
15 expression-language
15 expression-language15 expression-language
15 expression-language
 
JSP Standard Tag Library
JSP Standard Tag LibraryJSP Standard Tag Library
JSP Standard Tag Library
 
What's new in the Java API for JSON Binding
What's new in the Java API for JSON BindingWhat's new in the Java API for JSON Binding
What's new in the Java API for JSON Binding
 
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUGThe Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
The Java EE 7 Platform: Productivity &amp; HTML5 at San Francisco JUG
 

Similar a Practical RESTful Persistence

Optaros Surf Code Camp Api
Optaros Surf Code Camp ApiOptaros Surf Code Camp Api
Optaros Surf Code Camp ApiJeff Potts
 
Construction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesConstruction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesThoughtWorks
 
Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.Edward Burns
 
The Modern Java Web Developer Bootcamp - Devoxx 2013
The Modern Java Web Developer Bootcamp - Devoxx 2013The Modern Java Web Developer Bootcamp - Devoxx 2013
The Modern Java Web Developer Bootcamp - Devoxx 2013Matt Raible
 
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)James Titcumb
 
Using Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion DollarsUsing Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion DollarsMike Pack
 
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)James Titcumb
 
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010Lincoln III
 
Sustainable queryable access to Linked Data
Sustainable queryable access to Linked DataSustainable queryable access to Linked Data
Sustainable queryable access to Linked DataRuben Verborgh
 
Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)Robert Lemke
 
RubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteRubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteDr Nic Williams
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVCAlive Kuo
 
Optaros Surf Code Camp Lab 2
Optaros Surf Code Camp Lab 2Optaros Surf Code Camp Lab 2
Optaros Surf Code Camp Lab 2Jeff Potts
 
03 form-data
03 form-data03 form-data
03 form-datasnopteck
 
Secure Streaming-as-a-Service with Kafka/Spark/Flink in Hopsworks
Secure Streaming-as-a-Service with Kafka/Spark/Flink in HopsworksSecure Streaming-as-a-Service with Kafka/Spark/Flink in Hopsworks
Secure Streaming-as-a-Service with Kafka/Spark/Flink in HopsworksTheofilos Kakantousis
 
Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...
Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...
Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...Evention
 
Deep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKJosé Paumard
 
Socket applications
Socket applicationsSocket applications
Socket applicationsJoão Moura
 

Similar a Practical RESTful Persistence (20)

Optaros Surf Code Camp Api
Optaros Surf Code Camp ApiOptaros Surf Code Camp Api
Optaros Surf Code Camp Api
 
Construction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesConstruction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific Languages
 
Workshop 17: EmberJS parte II
Workshop 17: EmberJS parte IIWorkshop 17: EmberJS parte II
Workshop 17: EmberJS parte II
 
Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.Ed presents JSF 2.2 and WebSocket to Gameduell.
Ed presents JSF 2.2 and WebSocket to Gameduell.
 
The Modern Java Web Developer Bootcamp - Devoxx 2013
The Modern Java Web Developer Bootcamp - Devoxx 2013The Modern Java Web Developer Bootcamp - Devoxx 2013
The Modern Java Web Developer Bootcamp - Devoxx 2013
 
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
Kicking off with Zend Expressive and Doctrine ORM (PHP UK 2017)
 
Using Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion DollarsUsing Ember to Make a Bazillion Dollars
Using Ember to Make a Bazillion Dollars
 
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
Kicking off with Zend Expressive and Doctrine ORM (Sunshine PHP 2017)
 
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
PrettyFaces URLRewrite for Servlet & JavaEE @ Devoxx 2010
 
Sustainable queryable access to Linked Data
Sustainable queryable access to Linked DataSustainable queryable access to Linked Data
Sustainable queryable access to Linked Data
 
Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)Getting Into FLOW3 (TYPO312CA)
Getting Into FLOW3 (TYPO312CA)
 
RubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - KeynoteRubyEnRails2007 - Dr Nic Williams - Keynote
RubyEnRails2007 - Dr Nic Williams - Keynote
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC
 
Optaros Surf Code Camp Lab 2
Optaros Surf Code Camp Lab 2Optaros Surf Code Camp Lab 2
Optaros Surf Code Camp Lab 2
 
03 form-data
03 form-data03 form-data
03 form-data
 
Secure Streaming-as-a-Service with Kafka/Spark/Flink in Hopsworks
Secure Streaming-as-a-Service with Kafka/Spark/Flink in HopsworksSecure Streaming-as-a-Service with Kafka/Spark/Flink in Hopsworks
Secure Streaming-as-a-Service with Kafka/Spark/Flink in Hopsworks
 
Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...
Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...
Hopsworks Secure Streaming as-a-service with Kafka Flinkspark - Theofilos Kak...
 
Coding Your Way to Java 13
Coding Your Way to Java 13Coding Your Way to Java 13
Coding Your Way to Java 13
 
Deep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UK
 
Socket applications
Socket applicationsSocket applications
Socket applications
 

Más de Shaun Smith

Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Shaun Smith
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOpsShaun Smith
 
Democratizing Serverless
Democratizing ServerlessDemocratizing Serverless
Democratizing ServerlessShaun Smith
 
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and MorePolyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and MoreShaun Smith
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the CloudShaun Smith
 
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5Shaun Smith
 
EclipseCon 2011-Gemini Naming
EclipseCon 2011-Gemini NamingEclipseCon 2011-Gemini Naming
EclipseCon 2011-Gemini NamingShaun Smith
 
EclipseCon 2011-Gemini Intro
EclipseCon 2011-Gemini IntroEclipseCon 2011-Gemini Intro
EclipseCon 2011-Gemini IntroShaun Smith
 
EclipseCon 2011-Gemini JPA
EclipseCon 2011-Gemini JPAEclipseCon 2011-Gemini JPA
EclipseCon 2011-Gemini JPAShaun Smith
 
RESTful Data Access Services with Java EE
RESTful Data Access Services with Java EERESTful Data Access Services with Java EE
RESTful Data Access Services with Java EEShaun Smith
 
RESTful services with JAXB and JPA
RESTful services with JAXB and JPARESTful services with JAXB and JPA
RESTful services with JAXB and JPAShaun Smith
 
OSGi Persistence With EclipseLink
OSGi Persistence With EclipseLinkOSGi Persistence With EclipseLink
OSGi Persistence With EclipseLinkShaun Smith
 

Más de Shaun Smith (12)

Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOps
 
Democratizing Serverless
Democratizing ServerlessDemocratizing Serverless
Democratizing Serverless
 
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and MorePolyglot! A Lightweight Cloud Platform for Java SE, Node, and More
Polyglot! A Lightweight Cloud Platform for Java SE, Node, and More
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
 
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
EclipseLink: Beyond Relational and NoSQL to Polyglot and HTML5
 
EclipseCon 2011-Gemini Naming
EclipseCon 2011-Gemini NamingEclipseCon 2011-Gemini Naming
EclipseCon 2011-Gemini Naming
 
EclipseCon 2011-Gemini Intro
EclipseCon 2011-Gemini IntroEclipseCon 2011-Gemini Intro
EclipseCon 2011-Gemini Intro
 
EclipseCon 2011-Gemini JPA
EclipseCon 2011-Gemini JPAEclipseCon 2011-Gemini JPA
EclipseCon 2011-Gemini JPA
 
RESTful Data Access Services with Java EE
RESTful Data Access Services with Java EERESTful Data Access Services with Java EE
RESTful Data Access Services with Java EE
 
RESTful services with JAXB and JPA
RESTful services with JAXB and JPARESTful services with JAXB and JPA
RESTful services with JAXB and JPA
 
OSGi Persistence With EclipseLink
OSGi Persistence With EclipseLinkOSGi Persistence With EclipseLink
OSGi Persistence With EclipseLink
 

Último

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfhans926745
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?Igalia
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Último (20)

Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdfTech Trends Report 2024 Future Today Institute.pdf
Tech Trends Report 2024 Future Today Institute.pdf
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

Practical RESTful Persistence