SlideShare una empresa de Scribd logo
1 de 53
Descargar para leer sin conexión
HTTP/2&comes&to&Java!&
JCConf&Taiwan&2015
David&Delabassee&
@delabassee&
Oracle
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved.*
1
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Safe*Harbor*Statement
The* following* 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.
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 3
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Agenda
Why*HTTP/2?*
HTTP/2*
HTTP/2*and*Java*EE*
HTTP/2*and*Java*SE*
Summary
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Agenda
Why*HTTP/2?*
HTTP/2*
HTTP/2*and*Java*SE*
HTTP/2*and*Java*EE*
Summary
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 6 @delabassee
Data*Never*Sleeps*2.0
https://www.domo.com/learn/dataRneverRsleepsR2
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 7 @delabassee
HTTP*1.x
1991* 1996* 1999* 2009* 2015*
HTTP/0.9*
HTTP/1.0*
HTTP/1.1*
SPDY*
HTTP/2.0*
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 8 @delabassee
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 9 @delabassee
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 10 @delabassee
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 11 @delabassee
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 13 @delabassee
Today
index.html
style1.css
style2.css
.&
.&
.&
script1.js
script9.js
pic1.jpg
pic8.jpg
.&
.&
.&
photo1.png
photo2.png
.&
.&
.&
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 14 @delabassee
google.fr*(1st)*
• 3*HTTP*Requests*
• 21.355*bytes*
- 1*HTML*
- 1*image*
- 1*.js
Top*.FR*examples
lefigaro.fr*(15th)*
• 140*HTTP*Requests*
• 2.736.562*bytes*
- 1*HTML*
- 130*images*
- 6*.js*
- 2*.css*
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 15 @delabassee
• If*a*page*takes*longer*than*4*sec*to*load,*1/4*people*abandons*that*page*(1)*
• 57%*of*consumers*will*abandon*a*page*that*takes*longer*than*3*sec*to*load*(2)*
• Page*load*slowdown*of*1*sec*could*cost*Amazon*$1.6*billion*in*sales*a*year*(1)*
• Slowing*search*results*by*0.4*sec,*Google*could*lose*8*million*searches*per*day*(1)
Latency*Vs.*Conversion*Rate
Time&is&Money!
(1)*http://www.fastcompany.com/1825005/howRoneRsecondRcouldRcostRamazonR16RbillionRsales*
(2)*RadView*Spring*2015*State*of*the*Union:*Ecommerce*Page*Speed*&*Web*Performance
@delabasseeCopyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved.
HTTP*1.1
HeadCofCLine&blocking
16
Client Server
index.html
index.html
style1.css*
script.js*
...
style1.css*
script.js*
...
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 17 @delabassee
HTTP*1.1
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 18 @delabassee
File*Concatenation*and*Image*Sprites
• Modern*web*page*consists*of*+90*resources*fetched*from*15*distinct*
hosts*(http://httparchive.org)*
• TCP*Efficiency*Improves*with*Larger*Files*
• Shoving*more*than*one*logical*file*into*one*physical*file
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 19 @delabassee
File*Concatenation*and*Image*Sprites
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 20 @delabassee
HTTP*1.1
Workaround&C&Domain&Sharding
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 21 @delabassee
Asset*inlining
…*
<img"src="data:image/gif;base64,R0lGODlhEAAOexs3eeALMAAOazToeHh0tLS/
7LZv0jvb29tf3Ubge8WSLrhf3kdbW1mxsjkhfkjfhGHhcjGDSHJUYgJvhgtyrHgfGfHy
t56HGfGH56ge8WSLf6GGHhfkjfhhfkjfhpBREzxvt6QAA4lsjkhfkjfhdxwqBnuIoYty
GhBKoOjJj6GGHvvhdsbxus38GV3pBREzxvt6QAA4lsjkhfkjfhdxwqBnuIoYtyGhBKoO
jJj6GGHvvhdsbxus38GV3vvhdsbxusbasbPmfyH5BAAAjAAAALAAfhGHhcjAAAAQAA4l
sjkhfkjfhGHhcjGDSHJUYgJvhgtyrHgfhfkjfhpBREzxvt6QAA4lsjkhfkjfhdxwqBnu
IoYtyGhBKoOjJj6GGHvvhdsbxus38GV3GfHyt56HGfGH56ge8WsjkhfkjfhGHhcjGDSH
JUYgJvhgtyrHgfGfHyt56HGfGH56gebxus38G8WSLf6GGHvvhdsbxusbaSLf6GGHvvhd
sbxusbaOiQA4lsjkhfkjf4lsjkhfkjf4lsjbxus38GkhfkjfhfkjfhpBREzxvt6QAA4l
sjkhfkjfhdxwqBnuIoYtyGhBKoOjJj6GGHvvhdsbxus38GV3DcPjjBceXsplojj…”"/>"
…
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 22 @delabassee
• HTTP*uses*TCP*poorly*
- HTTP:*short*and*bursty*flows*Vs.*TCP:*optimized*for*longRlived*flows*
• Solutions*
- Sprites*
- Domain*sharding*
- Assets*Inlining*
- File*concatenations*
- …
HTTP/1.1*circa*1999
Problems&Vs&Solutions
1991& 1996& 1999& 2009& 2015&
HTTP/0.9&
HTTP/1.0&
HTTP/1.1&
SPDY&
HTTP/2.0&
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Agenda
Why*HTTP/2?*
HTTP/2*
HTTP/2*and*Java*SE*
HTTP/2*and*Java*EE*
Summary
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
HTTP/2
• Jan*2015*
• Feb*2015*
• May*2015
24
Enabled*by*default*in*FireFox*(35)*and*Chrome*(40)*
IESG*approved*HTTP/2*
HTTP/2*in*10%*of*all*HTTP*responses*(FireFox)*
HTTP/2*used*in*18%*of*global*traffic*(Google)*
RFC*7540**“Hypertext*Transfer*Protocol*Version*2”*
RFC*7541**“HPACK:*Header*Compression*for*HTTP/2”**
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 25 @delabassee
Browsers*support
…&as&of&November&2015
http://caniuse.com/http2*
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved.* @delabassee26
HTTP/2*Features
• Binary*Framing*over*single*TCP*connection*
• Request/Response*multiplexing*
• Stream*Prioritization*
• Server*Push*
• Upgrade*from*HTTP*1.1*
• Header*Compression*
• Preserve*HTTP*semantic
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved.* @delabassee26
HTTP/2*Features
• Binary*Framing*over*single*TCP*connection*
• Request/Response*multiplexing*
• Stream*Prioritization*
• Server*Push*
• Upgrade*from*HTTP*1.1*
• Header*Compression*
• Preserve*HTTP*semantic
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 27 @delabassee
HTTP/2
• Fully*biRdirectional*
– Connection

A*TCP*socket*
– Message*

A*logical*HTTP*message,*such*as*a*request*or*a*response**
– Stream

A*biRdirectional*“channel”*within*a*connection,*carry*one*or*more*message*
– Frame

The*smallest*unit*of*communication*in*HTTP/2
Lets&you&do&more&things&with&a&single&TCP&connection
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 28 @delabassee
HTTP/2
Connections,&Streams,&Messages,&Frames
@delabasseeCopyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved.
Binary*Frames
• Frames*
- HEADERS,*DATA,*PRIORITY,*RST_STREAM,*SETTINGS,*PUSH_PROMISE,*PING,*
GOAWAY,*WINDOW_UPDATE,*CONTINUATION*
- Prioritisation,*Flow*Control,*Server*Push,*…**
• Single*TCP*Connection
29
POST*/upload*HTTP/1.1*
Host:*www.test.com*
ContentRType:*application/json*
ContentRLength:*15*
{“name”:“duke”}
HTTP&1.1 HTTP/2
HEADERS&frame
DATA&frame
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 30 @delabassee
HTTP/2*Binary*Framing
GET*/index.html*HTTP/1.1

Host:*example.com

Accept:*text/html
Example&1
HEADERS

****+*END_STREAM

****+*END_HEADERS

********:method:*GET

********:scheme:*http

********:path:*/index.html

********:authority:*example.org

********accept:*text/html
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 31 @delabassee
HTTP/2*Binary*Framing
HTTP/1.1*200*OK

ContentRLength:*84

ContentRType:*text/html



<!doctype*html>*
<head>*
<meta*charset=utfR8>*
</head>*
<body>Hello*World</body>*
</html>
Example&2
HEADERS

****R*END_STREAM

****+*END_HEADERS

********:status:*200

********contentRlength:*84

********contentRtype:*text/html



DATA

****+*END_STREAM

<!doctype*html>…
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 32 @delabassee
Multiplexing
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 33 @delabassee
Stream*Prioritization
• Stream*Dependency*in*HEADERS*Frame*
• PRIORITY*frame*type*
• An*additional*40*bytes*
- Stream*id*(31)*
- Weight*(8):*[1,*256]**
- Exclusive*bit*(1)*
• Only*an*advice
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee#HTTP/2
Server*Push
/index.html***stream*1*
/style.css********stream*2*
/logo.gif*********stream*4
Client Server
stream&1&
HEADERS
stream&1&
DATA
stream&2&&&&
PROMISE
stream&4&
PROMISE
• No*JavaScript*API!
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 35 @delabassee
Header*Compression
HPack
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 36 @delabassee
Upgrade*from*HTTP*1.1
• HTTP*
- Port*80*
- HTTP*Upgrade*to*“h2c”*(101*Switching*Protocol)*
• HTTPS*(*)*
- Application*Layer*Protocol*Negotiation*(ALPN)*
- Next*Protocol*Negotiation*(NPN)*
(*)*TLS*is*not*mandatory
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee37
&Demo?
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Agenda
Why*HTTP/2?*
HTTP/2*
HTTP/2*and*Java*SE*
HTTP/2*and*Java*EE*
Summary
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Java*9*Support*for*HTTP/2
• JEP*110*
- http://openjdk.java.net/jeps/110*
• Supports*both*HTTP*1.1*and*2*
• Easy*to*use*API*
• Covers*only*the*most*common*use*cases*
• Synchronous*&*Asynchronous
39#HTTP/2
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Java*9
HttpClient"client"="HttpClient.create()"
" """"""""""""""""""""""""""".sslContext(ctx)"
" """"""""""""""""""""""""""".followRedirects(HttpRedirect.ALWAYS)"
"""""""""""""""""""""""""""""".executorService(…)"
" """"""""""""""""""""""""""".build();"
HttpRequest.Builder"builder"="client.request(new"URI(target))"
"""""""""""""""""""""""""""""""""""".body(noBody());"
HttpResponse"response"="builder.GET().send();"
//"do"something"with"the"response…"
40
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Java*9
//"HttpRequest"builder"from"the"default"HttpClient"
HttpResponse"response"="HttpRequest.create(new"URI("http://www.abc.be"))"
""""""""""""""""""""""""""""""""""".send(HttpRequest.noBody());"
String"responseBody"="response.body(HttpResponse.asString());"
response"="HttpRequest.create(new"URI("http://www.abc.be"))"
"""""""""""""""""""""".body(fromString("param1=Abc"))"
"""""""""""""""""""""".post()A
AAAAAAAAAAAAAAAAAAAAAA.send();"
…
41
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Java*9
HttpClient"cl"="HttpClient.create()"
"""""""""""""""""""""""""".proxy("http",proxAd).proxy("https","proxAd)"
"""""""""""""""""""""""""".sslContext(ctx)"
"""""""""""""""""""""""""".build();"
CompletableFuture<String>"compFut"="cl.request(uri)"
" " " " " " " " "".body(noBody())"
" """"""""""""""""""""""".GET()"
" """"""""""""""""""""""".sendAsync()"
"""""""""""""""""""""""""".thenCompose((HttpResponse"response)"l>"{"
""""""""""""""""""""""""""""""""""return"response.bodyAsync(asString());"
""""""""""""""""""""""""""});"
String"body"="compFut.get(5,"TimeUnit.SECONDS);"
…
42
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Agenda
Why*HTTP/2?*
HTTP/2*
HTTP/2*and*Java*SE*
HTTP/2*and*Java*EE*
Summary
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 44 @delabassee
• Request/Response*multiplexing*
• Binary*Framing*
• Stream*Prioritization*
• Server*Push*
• Header*Compression*
• Upgrade*from*HTTP*1.1*
– ALPN*
– 101*Switching*Protocols
HTTP/2
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 45 @delabassee
• Request/Response*Multiplexing*
• Binary*Framing*
• Stream*Prioritization*
• Server*Push*
• Header*Compression*
• Upgrade*from*HTTP*1.1*
– ALPN*
– 101*Switching*Protocols
Features&to&be&Exposed&in&the&Servlet&API
Servlet*4
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 46 @delabassee
• Push*resource*to*client*for*a*given*url*and*headers*
• May*add*callback*for*completion*or*error*of*a*push*
• Not*a*replacement*for*WebSocket
Servlet*4.0*R*Server*Push
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved.
PushBuilderAbuilder = baseRequest.getPushBuilder();
builder.addHeader(“X-Pusher", …);
builder.path(aResource)
.etag(associated._etag)
.lastModified(associated._lastModified)
.push();
47
Server*Push
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Agenda
Why*HTTP/2?*
HTTP/2*
HTTP/2*and*Java*SE*
HTTP/2*and*Java*EE*
Summary
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
HTTP/2
• Address*the*Limitations*of*HTTP*1.x*
- Improve*ressources*utilization,*performance,*reduce*latency*
• “Compatible”*with*HTTP*1.1*
- Retain*HTTP*1.1*semantics*
- Define*interaction*with*HTTP*1.1*
- Undo*your*HTTP*1.1*tricks!!*
• “TLS0not0mandatory”
49
Hypertext&Transfer&Protocol&version&2&&&HPACK
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
HTTP/2*and*Java
• JEP*110*brings*HTTP/2*to*Java*SE*
• Servlet*4.0*brings*HTTP/2*to*Java*EE*
- Expose*key*features*to*the*API*
• Server*Push*
• HTTP*1.1*upgrade*
• Timing*TBC!
50
Plans
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee51
&
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. @delabassee
Resources*(and*credits)
• http://http2.github.io*
• http://chimera.labs.oreilly.com/books/1230000000545/ch12.html*
• https://java.net/projects/servletRspec/*
• http://glassfish.org/adoptajsr*
• http://openjdk.java.net/jeps/110
52
Copyright*©*2015,*Oracle*and/or*its*affiliates.*All*rights*reserved. 53

Más contenido relacionado

La actualidad más candente

Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016David Delabassee
 
Java Embedded у вас дома
Java Embedded у вас домаJava Embedded у вас дома
Java Embedded у вас домаDiana Dymolazova
 
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloakDevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloakHitachi, Ltd. OSS Solution Center.
 
Nonblocking Database Access in Helidon SE
Nonblocking Database Access in Helidon SENonblocking Database Access in Helidon SE
Nonblocking Database Access in Helidon SEDmitry Kornilov
 
Another compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilationAnother compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilationLogico
 
Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)Logico
 
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur! Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur! David Delabassee
 

La actualidad más candente (7)

Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016Java EE Next - BeJUG JavaOne Afterglow 2016
Java EE Next - BeJUG JavaOne Afterglow 2016
 
Java Embedded у вас дома
Java Embedded у вас домаJava Embedded у вас дома
Java Embedded у вас дома
 
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloakDevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
DevConf.CZ 2020 @ Brno, Czech Republic : WebAuthn support for keycloak
 
Nonblocking Database Access in Helidon SE
Nonblocking Database Access in Helidon SENonblocking Database Access in Helidon SE
Nonblocking Database Access in Helidon SE
 
Another compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilationAnother compilation method in java - AOT (Ahead of Time) compilation
Another compilation method in java - AOT (Ahead of Time) compilation
 
Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)Java EE 8 Overview (Japanese)
Java EE 8 Overview (Japanese)
 
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur! Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
Java EE 7 et ensuite pourquoi pas JavaScript sur le serveur!
 

Similar a HTTP/2 comes to Java (Dec. 2015 version)

Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014Simon Ritter
 
Building beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCSBuilding beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCSSteven Davelaar
 
Using Edition-Based Redefinition for Zero Downtime PL/SQL Changes
Using Edition-Based Redefinition for Zero Downtime PL/SQL ChangesUsing Edition-Based Redefinition for Zero Downtime PL/SQL Changes
Using Edition-Based Redefinition for Zero Downtime PL/SQL ChangesChris Saxon
 
London Java Community (LJC) Open Meeting Keynote - Nov 2015
London Java Community (LJC) Open Meeting Keynote - Nov 2015London Java Community (LJC) Open Meeting Keynote - Nov 2015
London Java Community (LJC) Open Meeting Keynote - Nov 2015Steve Elliott
 
9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포DongHee Lee
 
GTRI.com Splunk for Vmware APP
GTRI.com Splunk for Vmware APPGTRI.com Splunk for Vmware APP
GTRI.com Splunk for Vmware APPZivaro Inc
 
OOW15 - EBS Certification and Roadmap
OOW15 - EBS Certification and RoadmapOOW15 - EBS Certification and Roadmap
OOW15 - EBS Certification and Roadmapvasuballa
 
Making DevOps Secure with Docker on Solaris (Oracle Open World, with Jesse Bu...
Making DevOps Secure with Docker on Solaris (Oracle Open World, with Jesse Bu...Making DevOps Secure with Docker on Solaris (Oracle Open World, with Jesse Bu...
Making DevOps Secure with Docker on Solaris (Oracle Open World, with Jesse Bu...Jérôme Petazzoni
 
Using Oracle Real Application Clusters (RAC) in Database as a Service
Using Oracle Real Application Clusters (RAC) in Database as a ServiceUsing Oracle Real Application Clusters (RAC) in Database as a Service
Using Oracle Real Application Clusters (RAC) in Database as a ServiceJean-Philippe PINTE
 
DevOps - Developer Cloud Service Demo
DevOps - Developer Cloud Service DemoDevOps - Developer Cloud Service Demo
DevOps - Developer Cloud Service DemoMee Nam Lee
 
Application Development with Oracle Database
Application Development with Oracle DatabaseApplication Development with Oracle Database
Application Development with Oracle Databasegvenzl
 
OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...
OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...
OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...vasuballa
 
CA World 2015 Using Docker and Containers to create Bespoke Systems Under Test
CA World 2015 Using Docker and Containers to create Bespoke Systems Under Test CA World 2015 Using Docker and Containers to create Bespoke Systems Under Test
CA World 2015 Using Docker and Containers to create Bespoke Systems Under Test Ian Kelly
 
Oracle RAC - A Safe Investment into the Future of Your IT
Oracle RAC - A Safe Investment into the Future of Your ITOracle RAC - A Safe Investment into the Future of Your IT
Oracle RAC - A Safe Investment into the Future of Your ITMarkus Michalewicz
 
Building Cloud-Native Applications with Helidon
Building Cloud-Native Applications with HelidonBuilding Cloud-Native Applications with Helidon
Building Cloud-Native Applications with HelidonDmitry Kornilov
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessEd Burns
 
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?Ryusuke Kajiyama
 
No sql from the web’s favourite relational database MySQL
No sql from the web’s favourite relational database MySQLNo sql from the web’s favourite relational database MySQL
No sql from the web’s favourite relational database MySQLMark Swarbrick
 

Similar a HTTP/2 comes to Java (Dec. 2015 version) (20)

Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014Oracle Keynote from JMagghreb 2014
Oracle Keynote from JMagghreb 2014
 
Apex day 1.0 oracle apex 5.0 patrick wolf
Apex day 1.0 oracle apex 5.0 patrick wolfApex day 1.0 oracle apex 5.0 patrick wolf
Apex day 1.0 oracle apex 5.0 patrick wolf
 
Building beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCSBuilding beacon-enabled apps with Oracle MCS
Building beacon-enabled apps with Oracle MCS
 
Using Edition-Based Redefinition for Zero Downtime PL/SQL Changes
Using Edition-Based Redefinition for Zero Downtime PL/SQL ChangesUsing Edition-Based Redefinition for Zero Downtime PL/SQL Changes
Using Edition-Based Redefinition for Zero Downtime PL/SQL Changes
 
London Java Community (LJC) Open Meeting Keynote - Nov 2015
London Java Community (LJC) Open Meeting Keynote - Nov 2015London Java Community (LJC) Open Meeting Keynote - Nov 2015
London Java Community (LJC) Open Meeting Keynote - Nov 2015
 
9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포9thMeetup-20190316-CI/CD 기반의 Microservice 배포
9thMeetup-20190316-CI/CD 기반의 Microservice 배포
 
GTRI.com Splunk for Vmware APP
GTRI.com Splunk for Vmware APPGTRI.com Splunk for Vmware APP
GTRI.com Splunk for Vmware APP
 
Oracle cmg15
Oracle cmg15Oracle cmg15
Oracle cmg15
 
OOW15 - EBS Certification and Roadmap
OOW15 - EBS Certification and RoadmapOOW15 - EBS Certification and Roadmap
OOW15 - EBS Certification and Roadmap
 
Making DevOps Secure with Docker on Solaris (Oracle Open World, with Jesse Bu...
Making DevOps Secure with Docker on Solaris (Oracle Open World, with Jesse Bu...Making DevOps Secure with Docker on Solaris (Oracle Open World, with Jesse Bu...
Making DevOps Secure with Docker on Solaris (Oracle Open World, with Jesse Bu...
 
Using Oracle Real Application Clusters (RAC) in Database as a Service
Using Oracle Real Application Clusters (RAC) in Database as a ServiceUsing Oracle Real Application Clusters (RAC) in Database as a Service
Using Oracle Real Application Clusters (RAC) in Database as a Service
 
DevOps - Developer Cloud Service Demo
DevOps - Developer Cloud Service DemoDevOps - Developer Cloud Service Demo
DevOps - Developer Cloud Service Demo
 
Application Development with Oracle Database
Application Development with Oracle DatabaseApplication Development with Oracle Database
Application Development with Oracle Database
 
OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...
OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...
OOW16 - Oracle E-Business Suite: Technology Certification Primer and Roadmap ...
 
CA World 2015 Using Docker and Containers to create Bespoke Systems Under Test
CA World 2015 Using Docker and Containers to create Bespoke Systems Under Test CA World 2015 Using Docker and Containers to create Bespoke Systems Under Test
CA World 2015 Using Docker and Containers to create Bespoke Systems Under Test
 
Oracle RAC - A Safe Investment into the Future of Your IT
Oracle RAC - A Safe Investment into the Future of Your ITOracle RAC - A Safe Investment into the Future of Your IT
Oracle RAC - A Safe Investment into the Future of Your IT
 
Building Cloud-Native Applications with Helidon
Building Cloud-Native Applications with HelidonBuilding Cloud-Native Applications with Helidon
Building Cloud-Native Applications with Helidon
 
Oracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with LessOracle WebLogic Server 12.2.1 Do More with Less
Oracle WebLogic Server 12.2.1 Do More with Less
 
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
[db tech showcase 2015 Sapporo HOKKAIDO] MySQL as document database!?
 
No sql from the web’s favourite relational database MySQL
No sql from the web’s favourite relational database MySQLNo sql from the web’s favourite relational database MySQL
No sql from the web’s favourite relational database MySQL
 

Más de David Delabassee

JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best PracticesDavid Delabassee
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsDavid Delabassee
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsDavid Delabassee
 
Randstad Docker meetup - Serverless
Randstad Docker meetup - ServerlessRandstad Docker meetup - Serverless
Randstad Docker meetup - ServerlessDavid Delabassee
 
Java Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed BanffJava Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed BanffDavid Delabassee
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyDavid Delabassee
 
Java EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web frontJava EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web frontDavid Delabassee
 
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
 
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0David Delabassee
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot David Delabassee
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshotJava EE 8 - An instant snapshot
Java EE 8 - An instant snapshotDavid Delabassee
 
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to YouHTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to YouDavid Delabassee
 

Más de David Delabassee (20)

JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best Practices
 
JVMs in Containers
JVMs in ContainersJVMs in Containers
JVMs in Containers
 
Serverless Java Challenges & Triumphs
Serverless Java Challenges & TriumphsServerless Java Challenges & Triumphs
Serverless Java Challenges & Triumphs
 
Serverless Java - Challenges and Triumphs
Serverless Java - Challenges and TriumphsServerless Java - Challenges and Triumphs
Serverless Java - Challenges and Triumphs
 
Randstad Docker meetup - Serverless
Randstad Docker meetup - ServerlessRandstad Docker meetup - Serverless
Randstad Docker meetup - Serverless
 
Java Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed BanffJava Serverless in Action - Voxxed Banff
Java Serverless in Action - Voxxed Banff
 
Serverless Kotlin
Serverless KotlinServerless Kotlin
Serverless Kotlin
 
REST in an Async World
REST in an Async WorldREST in an Async World
REST in an Async World
 
JAX-RS 2.1 Reloaded
JAX-RS 2.1 ReloadedJAX-RS 2.1 Reloaded
JAX-RS 2.1 Reloaded
 
EJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and StrategyEJB and CDI - Alignment and Strategy
EJB and CDI - Alignment and Strategy
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
 
Java EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web frontJava EE 8 - What’s new on the Web front
Java EE 8 - What’s new on the Web front
 
HTTP/2 Comes to Java
HTTP/2 Comes to JavaHTTP/2 Comes to Java
HTTP/2 Comes to Java
 
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
 
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
Java EE 8 Adopt a JSR : JSON-P 1.1 & MVC 1.0
 
MVC 1.0 / JSR 371
MVC 1.0 / JSR 371MVC 1.0 / JSR 371
MVC 1.0 / JSR 371
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
 
Avatar 2.0
Avatar 2.0Avatar 2.0
Avatar 2.0
 
Java EE 8 - An instant snapshot
Java EE 8 - An instant snapshotJava EE 8 - An instant snapshot
Java EE 8 - An instant snapshot
 
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to YouHTTP/2 Comes to Java - What Servlet 4.0 Means to You
HTTP/2 Comes to Java - What Servlet 4.0 Means to You
 

Último

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...kellynguyen01
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsAndolasoft Inc
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdfWave PLM
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 

Último (20)

TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
Short Story: Unveiling the Reasoning Abilities of Large Language Models by Ke...
 
How To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.jsHow To Use Server-Side Rendering with Nuxt.js
How To Use Server-Side Rendering with Nuxt.js
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf5 Signs You Need a Fashion PLM Software.pdf
5 Signs You Need a Fashion PLM Software.pdf
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 

HTTP/2 comes to Java (Dec. 2015 version)