SlideShare a Scribd company logo
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
Ad

More Related Content

What's hot (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 ?
Arun Gupta
 
Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)Java EE 7 (Hamed Hatami)
Java EE 7 (Hamed Hatami)
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
Hirofumi Iwasaki
 
SD Forum 1999 XML Lessons Learned
SD Forum 1999 XML Lessons LearnedSD Forum 1999 XML Lessons Learned
SD Forum 1999 XML Lessons Learned
Ted Leung
 
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsJava EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
Murat Yener
 
JSON-B for CZJUG
JSON-B for CZJUGJSON-B for CZJUG
JSON-B for CZJUG
Dmitry Kornilov
 
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
David 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 2012
Arun 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 Advanced
IMC 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 frameworks
Dmitry Kornilov
 
Java EE Introduction
Java EE IntroductionJava EE Introduction
Java EE Introduction
ejlp12
 
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
IMC Institute
 
Jdbc
JdbcJdbc
Jdbc
haribee2000
 
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 PHP
Mats Kindahl
 
15 expression-language
15 expression-language15 expression-language
15 expression-language
snopteck
 
JSP Standard Tag Library
JSP Standard Tag LibraryJSP Standard Tag Library
JSP Standard Tag Library
Ilio 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 Binding
Dmitry 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 JUG
Arun Gupta
 
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 Learned
Ted Leung
 
Java EE Revisits GoF Design Patterns
Java EE Revisits GoF Design PatternsJava EE Revisits GoF Design Patterns
Java EE Revisits GoF Design Patterns
Murat 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 8
David 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 2012
Arun 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 Advanced
IMC 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 frameworks
Dmitry Kornilov
 
Java EE Introduction
Java EE IntroductionJava EE Introduction
Java EE Introduction
ejlp12
 
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
IMC 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 PHP
Mats Kindahl
 
15 expression-language
15 expression-language15 expression-language
15 expression-language
snopteck
 
JSP Standard Tag Library
JSP Standard Tag LibraryJSP Standard Tag Library
JSP Standard Tag Library
Ilio 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 Binding
Dmitry 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 JUG
Arun Gupta
 

Similar to Practical RESTful Persistence (20)

Optaros Surf Code Camp Api
Optaros Surf Code Camp ApiOptaros Surf Code Camp Api
Optaros Surf Code Camp Api
Jeff Potts
 
Construction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesConstruction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific Languages
ThoughtWorks
 
Workshop 17: EmberJS parte II
Workshop 17: EmberJS parte IIWorkshop 17: EmberJS parte II
Workshop 17: EmberJS parte II
Visual Engineering
 
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 2013
Matt 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 Dollars
Mike 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 2010
Lincoln III
 
Sustainable queryable access to Linked Data
Sustainable queryable access to Linked DataSustainable queryable access to Linked Data
Sustainable queryable access to Linked Data
Ruben 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 - Keynote
Dr Nic Williams
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC
Alive Kuo
 
Optaros Surf Code Camp Lab 2
Optaros Surf Code Camp Lab 2Optaros Surf Code Camp Lab 2
Optaros Surf Code Camp Lab 2
Jeff Potts
 
03 form-data
03 form-data03 form-data
03 form-data
snopteck
 
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
Theofilos 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
 
Coding Your Way to Java 13
Coding Your Way to Java 13Coding Your Way to Java 13
Coding Your Way to Java 13
Sander Mak (@Sander_Mak)
 
Deep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UKDeep Dive Java 17 Devoxx UK
Deep Dive Java 17 Devoxx UK
José Paumard
 
Socket applications
Socket applicationsSocket applications
Socket applications
João Moura
 
Optaros Surf Code Camp Api
Optaros Surf Code Camp ApiOptaros Surf Code Camp Api
Optaros Surf Code Camp Api
Jeff Potts
 
Construction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific LanguagesConstruction Techniques For Domain Specific Languages
Construction Techniques For Domain Specific Languages
ThoughtWorks
 
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 2013
Matt 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 Dollars
Mike 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 2010
Lincoln III
 
Sustainable queryable access to Linked Data
Sustainable queryable access to Linked DataSustainable queryable access to Linked Data
Sustainable queryable access to Linked Data
Ruben 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 - Keynote
Dr Nic Williams
 
[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC[Coscup 2012] JavascriptMVC
[Coscup 2012] JavascriptMVC
Alive Kuo
 
Optaros Surf Code Camp Lab 2
Optaros Surf Code Camp Lab 2Optaros Surf Code Camp Lab 2
Optaros Surf Code Camp Lab 2
Jeff Potts
 
03 form-data
03 form-data03 form-data
03 form-data
snopteck
 
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
Theofilos 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 UK
José Paumard
 
Socket applications
Socket applicationsSocket applications
Socket applications
João Moura
 
Ad

More from Shaun Smith (14)

A 1.5MB Java Container App? Yes you can!
A 1.5MB Java Container App? Yes you can!A 1.5MB Java Container App? Yes you can!
A 1.5MB Java Container App? Yes you can!
Shaun Smith
 
Practical Tips for Hardening Java Applications
Practical Tips for Hardening Java ApplicationsPractical Tips for Hardening Java Applications
Practical Tips for Hardening Java Applications
Shaun Smith
 
Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019
Shaun Smith
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOps
Shaun Smith
 
Democratizing Serverless
Democratizing ServerlessDemocratizing Serverless
Democratizing Serverless
Shaun 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 More
Shaun Smith
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
Shaun 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 HTML5
Shaun Smith
 
EclipseCon 2011-Gemini Naming
EclipseCon 2011-Gemini NamingEclipseCon 2011-Gemini Naming
EclipseCon 2011-Gemini Naming
Shaun Smith
 
EclipseCon 2011-Gemini Intro
EclipseCon 2011-Gemini IntroEclipseCon 2011-Gemini Intro
EclipseCon 2011-Gemini Intro
Shaun Smith
 
EclipseCon 2011-Gemini JPA
EclipseCon 2011-Gemini JPAEclipseCon 2011-Gemini JPA
EclipseCon 2011-Gemini JPA
Shaun 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 EE
Shaun Smith
 
RESTful services with JAXB and JPA
RESTful services with JAXB and JPARESTful services with JAXB and JPA
RESTful services with JAXB and JPA
Shaun Smith
 
OSGi Persistence With EclipseLink
OSGi Persistence With EclipseLinkOSGi Persistence With EclipseLink
OSGi Persistence With EclipseLink
Shaun Smith
 
A 1.5MB Java Container App? Yes you can!
A 1.5MB Java Container App? Yes you can!A 1.5MB Java Container App? Yes you can!
A 1.5MB Java Container App? Yes you can!
Shaun Smith
 
Practical Tips for Hardening Java Applications
Practical Tips for Hardening Java ApplicationsPractical Tips for Hardening Java Applications
Practical Tips for Hardening Java Applications
Shaun Smith
 
Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019Serverless Java: JJUG CCC 2019
Serverless Java: JJUG CCC 2019
Shaun Smith
 
Functions and DevOps
Functions and DevOpsFunctions and DevOps
Functions and DevOps
Shaun Smith
 
Democratizing Serverless
Democratizing ServerlessDemocratizing Serverless
Democratizing Serverless
Shaun 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 More
Shaun Smith
 
Lightweight Java in the Cloud
Lightweight Java in the CloudLightweight Java in the Cloud
Lightweight Java in the Cloud
Shaun 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 HTML5
Shaun Smith
 
EclipseCon 2011-Gemini Naming
EclipseCon 2011-Gemini NamingEclipseCon 2011-Gemini Naming
EclipseCon 2011-Gemini Naming
Shaun Smith
 
EclipseCon 2011-Gemini Intro
EclipseCon 2011-Gemini IntroEclipseCon 2011-Gemini Intro
EclipseCon 2011-Gemini Intro
Shaun Smith
 
EclipseCon 2011-Gemini JPA
EclipseCon 2011-Gemini JPAEclipseCon 2011-Gemini JPA
EclipseCon 2011-Gemini JPA
Shaun 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 EE
Shaun Smith
 
RESTful services with JAXB and JPA
RESTful services with JAXB and JPARESTful services with JAXB and JPA
RESTful services with JAXB and JPA
Shaun Smith
 
OSGi Persistence With EclipseLink
OSGi Persistence With EclipseLinkOSGi Persistence With EclipseLink
OSGi Persistence With EclipseLink
Shaun Smith
 
Ad

Recently uploaded (20)

Q1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor PresentationQ1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor Presentation
Dropbox
 
The No-Code Way to Build a Marketing Team with One AI Agent (Download the n8n...
The No-Code Way to Build a Marketing Team with One AI Agent (Download the n8n...The No-Code Way to Build a Marketing Team with One AI Agent (Download the n8n...
The No-Code Way to Build a Marketing Team with One AI Agent (Download the n8n...
SOFTTECHHUB
 
Financial Services Technology Summit 2025
Financial Services Technology Summit 2025Financial Services Technology Summit 2025
Financial Services Technology Summit 2025
Ray Bugg
 
Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)
Kaya Weers
 
Bepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firmBepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firm
Benard76
 
machines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdfmachines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdf
AmirStern2
 
AsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API DesignAsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API Design
leonid54
 
Agentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community MeetupAgentic Automation - Delhi UiPath Community Meetup
Agentic Automation - Delhi UiPath Community Meetup
Manoj Batra (1600 + Connections)
 
UiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer OpportunitiesUiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer Opportunities
DianaGray10
 
Build With AI - In Person Session Slides.pdf
Build With AI - In Person Session Slides.pdfBuild With AI - In Person Session Slides.pdf
Build With AI - In Person Session Slides.pdf
Google Developer Group - Harare
 
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Raffi Khatchadourian
 
Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?
Eric Torreborre
 
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptxReimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
John Moore
 
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz
 
Canadian book publishing: Insights from the latest salary survey - Tech Forum...
Canadian book publishing: Insights from the latest salary survey - Tech Forum...Canadian book publishing: Insights from the latest salary survey - Tech Forum...
Canadian book publishing: Insights from the latest salary survey - Tech Forum...
BookNet Canada
 
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptxDevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
Justin Reock
 
The Changing Compliance Landscape in 2025.pdf
The Changing Compliance Landscape in 2025.pdfThe Changing Compliance Landscape in 2025.pdf
The Changing Compliance Landscape in 2025.pdf
Precisely
 
AI 3-in-1: Agents, RAG, and Local Models - Brent Laster
AI 3-in-1: Agents, RAG, and Local Models - Brent LasterAI 3-in-1: Agents, RAG, and Local Models - Brent Laster
AI 3-in-1: Agents, RAG, and Local Models - Brent Laster
All Things Open
 
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
Gyrus AI
 
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptxSmart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Seasia Infotech
 
Q1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor PresentationQ1 2025 Dropbox Earnings and Investor Presentation
Q1 2025 Dropbox Earnings and Investor Presentation
Dropbox
 
The No-Code Way to Build a Marketing Team with One AI Agent (Download the n8n...
The No-Code Way to Build a Marketing Team with One AI Agent (Download the n8n...The No-Code Way to Build a Marketing Team with One AI Agent (Download the n8n...
The No-Code Way to Build a Marketing Team with One AI Agent (Download the n8n...
SOFTTECHHUB
 
Financial Services Technology Summit 2025
Financial Services Technology Summit 2025Financial Services Technology Summit 2025
Financial Services Technology Summit 2025
Ray Bugg
 
Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)Design pattern talk by Kaya Weers - 2025 (v2)
Design pattern talk by Kaya Weers - 2025 (v2)
Kaya Weers
 
Bepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firmBepents tech services - a premier cybersecurity consulting firm
Bepents tech services - a premier cybersecurity consulting firm
Benard76
 
machines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdfmachines-for-woodworking-shops-en-compressed.pdf
machines-for-woodworking-shops-en-compressed.pdf
AmirStern2
 
AsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API DesignAsyncAPI v3 : Streamlining Event-Driven API Design
AsyncAPI v3 : Streamlining Event-Driven API Design
leonid54
 
UiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer OpportunitiesUiPath Agentic Automation: Community Developer Opportunities
UiPath Agentic Automation: Community Developer Opportunities
DianaGray10
 
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Hybridize Functions: A Tool for Automatically Refactoring Imperative Deep Lea...
Raffi Khatchadourian
 
Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?Shoehorning dependency injection into a FP language, what does it take?
Shoehorning dependency injection into a FP language, what does it take?
Eric Torreborre
 
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptxReimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
Reimagine How You and Your Team Work with Microsoft 365 Copilot.pptx
John Moore
 
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025Zilliz Cloud Monthly Technical Review: May 2025
Zilliz Cloud Monthly Technical Review: May 2025
Zilliz
 
Canadian book publishing: Insights from the latest salary survey - Tech Forum...
Canadian book publishing: Insights from the latest salary survey - Tech Forum...Canadian book publishing: Insights from the latest salary survey - Tech Forum...
Canadian book publishing: Insights from the latest salary survey - Tech Forum...
BookNet Canada
 
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptxDevOpsDays SLC - Platform Engineers are Product Managers.pptx
DevOpsDays SLC - Platform Engineers are Product Managers.pptx
Justin Reock
 
The Changing Compliance Landscape in 2025.pdf
The Changing Compliance Landscape in 2025.pdfThe Changing Compliance Landscape in 2025.pdf
The Changing Compliance Landscape in 2025.pdf
Precisely
 
AI 3-in-1: Agents, RAG, and Local Models - Brent Laster
AI 3-in-1: Agents, RAG, and Local Models - Brent LasterAI 3-in-1: Agents, RAG, and Local Models - Brent Laster
AI 3-in-1: Agents, RAG, and Local Models - Brent Laster
All Things Open
 
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and MLGyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
GyrusAI - Broadcasting & Streaming Applications Driven by AI and ML
Gyrus AI
 
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptxSmart Investments Leveraging Agentic AI for Real Estate Success.pptx
Smart Investments Leveraging Agentic AI for Real Estate Success.pptx
Seasia Infotech
 

Practical RESTful Persistence

  翻译: