SlideShare une entreprise Scribd logo
1  sur  59
Télécharger pour lire hors ligne
GlassFish v3
The future of Java EE is here

Alexis Moussine-Pouchkine
GlassFish Team
This is no science fiction

Java EE 6 and GlassFish v3 shipped
th
final releases on December 10 2009
GlassFish Around You
GlassFish Around You
Some History and Context
Tomcat
Jasper
Catalina
JSTL
Struts
Crimson
XSLTC
Xalan
Xerces
JAXB
JAX-RPC
JSF

GlassFish v3
(Java EE 6)

GlassFish v1
(Java EE 5)
GlassFish
Launch

June
2005

v2

May
2006

Sept.
2007

v2.1

v2.1.1

Jan
2008

(you are here)

Dec.
2009
GlassFish
●

A Community
●
●
●

Users, Partners, Testers, Developers
Started in 2005 on java.net
Sub-projects
–

●

Jersey (JAX-RS), Metro (JAX-WS), Grizzly (nio),
Atmosphere (Comet), OpenMQ (JMS), and scripting

Application Server
●
●
●

Enterprise Quality and Open Source
Java EE 5 / 6 Reference Implementation
Full Commercial Support from Oracle
Oracle GlassFish Server
GlassFish going forward
●

No change to operation of open source project
●
●
●
●

●

GlassFish 3.0.1
●

●

GlassFish Open Source Edition under existing license
Remains transparent and participatory
Strengthened by Oracle leadership
Customer and community driven product roadmap
Additional platforms, jrockit, ...

Feature releases
●
●
●

GlassFish v3.1 in 2010, v3.2 in 2011, v4 in 2012
Clustering, centralized admin, Coherence, virtualization
Details at http://glassfish.org/roadmap
Demo

Painless development with
GlassFish v3
Painless Java EE development !
●
●

Incremental compile of all Java EE artifacts
Auto-deploy of all Java EE and static artifacts
Session Retention
●

Deployment option to maintain stateful
sessions across re-deployments

$ asadmin redeploy --properties
keepSessions=true myapp.war
●

●

Greatly simplifies the
development paradigm
Integrated in IDEs
Introducing
GlassFish v3
Modular and Dynamic
●

Modular : Apache Felix (OSGi)

●

Extensible : HK2

●

Yet very Fast !
Java EE, a brief History
Ease of
development
(web)
Ease of
development
Java EE 5

Web Services

Enterprise
Application

Robust
Scalable

J2EE 1.4

J2EE 1.3

J2EE 1.2

Project JPE
May 1998

Servlet
JSP
EJB
JMS
RMI/IIOP

Dec 1999
10 specs

CMP
JCA

Sept 2001
13 specs

WS
Management
Deployment

Nov 2003
20 specs

Annotations
EJB 3
JPA 1.0
WS-*
JSF

May 2006
23 specs

Java EE 6
EJB 3.1
JPA 2.0
Servlet 3.0
JSF 2.0
JAX-RS 1.1
CDI 1.0
@Inject
Bean Validat°

Web Profile
Managed
Bean

Q4 2009
28 specs
Java EE 6 – What's New?
●
●
●
●
●

Several new APIs
Web Profile
Extensibility & Pluggability
Dependency Injection
Improvement to many APIs
New and improved specifications
●
●
●
●
●
●
●

EJB 3.1
JPA 2.0
Servlet 3.0
JSF 2.0
JAX-RS 1.1
Connectors 1.6
Bean Validation 1.0

●
●
●
●
●
●
●
●

DI 1.0
CDI 1.0
Managed Beans 1.0
Interceptors 1.1
JAX-WS 2.2
JSR-109 1.3
JSP 2.2 / EL 2.2
JSR-250 1.1
JAX-RS
●

RESTful web services API

●

Already widely adopted

●

Really a general, high-level HTTP API

●

Annotation-based programming model

●

Programmatic API when needed

●

JAX-RS 1.1 integration with EJBs
JAX-RS sample code
@Path("widgets/{id}")
@Produces("application/widgets+xml")
public class WidgetResource {
public WidgetResource(
@PathParam("id") String id) {
...
}
@GET
Widget getWidget() {
...
}
}
Bean Validation 1.0
public class Address {
@NotNull @Size(max=30,
message="longer than {max} characters")
private String street1;
...
@NotNull @Valid
private Country country;
}
public class Country {
@NotNull @Size(max=20)
private String name;
...
}

request recursive
object graph
validation
Build your own!
@Size(min=5, max=5)
@ConstraintValidator(ZipcodeValidator.class)
@Documented
@Target({ANNOTATION_TYPE, METHOD, FIELD})
@Retention(RUNTIME)
public @interface ZipCode {
String message() default "Wrong zipcode";
String[] groups() default {};
}

Integrated in JPA and JSF
Bootstrap APIs
Java EE 6 Web Profile
●
●
●
●
●
●
●

Servlet 3.0
JSP 2.2 / EL 2.2
JSR-45 1.0
JSTL 1.2
JSF 2.0
Bean Validation 1.0
EJB 3.1 Lite

●
●
●
●
●
●
●

JPA 2.0
JTA 1.1
DI 1.0
CDI 1.0
Managed Beans 1.0
Interceptors 1.1
JSR-250 1.1
Modular Web Applications
●
●
●
●
●
●

Libraries can contain web-fragment.xml
web.xml is optional
@WebServlet, @WebFilter annotations
ServletContainerInitializer interface
Programmatic registration
Resource jars
JSF 2.0
●

Standardized facelets

●

Auto-discovery of component libraries

●

Composite components

●

Ajax support with partial views

●

Even a JavaScript API !
EJB 3.1
●

@Singleton beans

●

@Startup beans

●

@Asynchronous invocations

●

@Schedule tasks

●

EJBContainer API works on Java SE

●

Define EJBs directly inside a web app
Packaging in a war
foo.ear
lib/foo_common.jar
com/acme/Foo.class

foo_web.war
WEB-INF/web.xml
WEB-INF/classes
com/acme/FooServlet.class

foo_ejb.jar
com/acme/FooEJB.class
com/acme/FooEJBLocal.class

foo.war
WEB-INF/classes
com/acme/Foo.class
com/acme/FooServlet.class
com/acme/FooEJB.class
JPA 2.0
●

●

Support for collections of basic types and
embeddable objects
JPQL enhancements
e.g. CASE WHEN, NULLIF
Pessimistic locking
●

●
●

Criteria API for dynamic query construction
Dependency Injection
●

JSR-299 + JSR-330

●

Added @Inject support
@Inject @LoggedIn User user;

●

Beans discovered at startup

●

Injection metamodel (BeanManager API)

●

@Resource still around
@Resource DataSource myDB;
Dependency Injection Sample
public class CheckoutHandler {
@Inject
CheckoutHandler(@LoggedIn User user,
@Reliable @PayBy(CREDIT_CARD)
PaymentProcessor processor,
@Default Cart cart) {
...
}
}
Demo

Painless (Java EE 6) development
Yes, Eclipse too !

GlassFish Tools Bundle for Eclipse : http://download.java.net/glassfish/eclipse/
More Painless Development
●

●

Fast auto-deploy of all Java EE and static
artifacts
Application runner
●

●

java -jar glassfish.jar toto.war

Integration with maven 2
●

mvn gf:run, gf:start, gf:deploy, ...

●

Containers can be added/removed dynamically

●

Excellent Tools integration
How hard should it be to test
EJBs?

EJBContainer c = EJBContainer.createEJBContainer();
Context ic = c.getContext();
SimpleEjb ejb = (SimpleEjb)
ic.lookup("java:global/sample/SimpleEjb");
ejb.sayHello();
How hard should it be to test
EJBs?
New in EJB 3.1
EJBContainer c = EJBContainer.createEJBContainer();
Context ic = c.getContext();
SimpleEjb ejb = (SimpleEjb)
ic.lookup("java:global/sample/SimpleEjb");
ejb.sayHello();

Portable JNDI name
How hard should it be to test
EJBs?
@Test public void test() {
EJBContainer c = EJBContainer.createEJBContainer();
Context ic = c.getContext();
SimpleEjb ejb = (SimpleEjb)
ic.lookup("java:global/sample/SimpleEjb");
ejb.sayHello();
}

Demo
GlassFish Embedded
org.glassfish.api.embedded.Server server;
Server.Builder builder = new Server.Builder();
server = builder.build();
GlassFish Embedded
org.glassfish.api.embedded.Server server;
Server.Builder builder = new Server.Builder();
server = builder.build();
ContainerBuilder b =
server.createConfig(ContainerBuilder.Type.web);
server.addContainer(b);
GlassFish Embedded
org.glassfish.api.embedded.Server server;
Server.Builder builder = new Server.Builder();
server = builder.build();
ContainerBuilder b =
server.createConfig(ContainerBuilder.Type.web);
server.addContainer(b);
File archive = new File("hello.war");
server.getDeployer().deploy(archive);

Same bits, different entry point
All in one JAR available
GlassFish Embedded
@BeforeClass public static void initContainer() {
org.glassfish.api.embedded.Server server;
Server.Builder builder = new Server.Builder();
server = builder.build();
ContainerBuilder b =
server.createConfig(ContainerBuilder.Type.web);
server.addContainer(b);
File archive = new File("hello.war");
server.getDeployer().deploy(archive);
}

@Test public static void pingApplication() {
...
}
GlassFish Embedded
public static void main(String[] args) {
org.glassfish.api.embedded.Server server;
Server.Builder builder = new Server.Builder();
server = builder.build();
ContainerBuilder b =
server.createConfig(ContainerBuilder.Type.web);
server.addContainer(b);
File archive = new File("realApplication.war");
server.getDeployer().deploy(archive);
}

Ship app server inside the application
What's the deal with OSGi?
●

GlassFish runs on top of OSGi (Felix by default)
●
●
●
●
●

●

Also runs unmodified on Equinox (and Knopflerfish)
GlassFish ships with 200+ bundles
Can run without OSGi (Static mode)
Can use OSGi management tools (CLI or Web)
Can be installed on top of existing OSGi runtime

Any OSGi bundle will run in GlassFish v3
●
●
●

Drop it in glassfish/modules{/autostart}
Can also asadmin deploy it using --type osgi
GlassFish OSGi admin console
Extending GlassFish v3
OSGi-style – an example, a demo and a picture
●

●

●

●

●

OSGi declarative service
Service-Component
entry in the JAR Manifest
Invoke the service from a
servlet using standard
@Resource injection
Never use a GlassFish
API !
No need to chose
between OSGi and
Java EE

Step by step: http://blogs.sun.com/dochez/entry/glassfish_v3_extensions_part_4
Demo

Extending GlassFish v3
OSGi-style
Extending GlassFish v3
SpringDM – another example, demo and picture
●

●

●

●

●

Extend GlassFish with
an unmodified Spring dm
container
Simple Spring bean
implementing the service
Invoke the service from a
servlet using standard
@Resource injection
Still no use of a
GlassFish API
Single runtime for both
Spring and full Java EE

Step by step: http://blogs.sun.com/dochez/entry/glassfish_v3_extensions_part_4
OSGi + Java EE = Hybrid Apps
●

GlassFish as the modular runtime
●
●

●

●

Assembled spontaneously
Admin tools (Web & CLI)

Implementation of Java EE related OSGi
services & standards
Support for Java EE 6 platform
●

●

e.g. JPA or EJB as OSGi services

Web Application Bundle (WAB)
●

WAR + OSGi metadata + Web-ContextPath header
Update Center
Demo

GlassFish à la Carte
GlassFish à la carte
●

Unzip 5-MB bootstrap
●

Install core IPS packages
GlassFish à la carte
●

Unzip 5-MB bootstrap
●

●

Install core IPS packages

Define the repository to use
GlassFish à la carte
●

Unzip 5-MB bootstrap
●

●
●

Install core IPS packages

Define the repository to use
Install individual packages
●
●

Start with core glassfish-nucleus package
Drags dependencies of course
GlassFish à la carte
●

Unzip 5-MB bootstrap
●

●
●

Define the repository to use
Install individual packages
●
●

●

Install core IPS packages

Start with core glassfish-nucleus package
Drags dependencies of course

Install umbrella package (a distro really)
●

Enough to run a JAX-RS/EJB31 demo
GlassFish à la carte
●

Unzip 5-MB bootstrap
●

●
●

Define the repository to use
Install individual packages
●
●

●

●

Start with core glassfish-nucleus package
Drags dependencies of course

Install umbrella package (a distro really)
●

●

Install core IPS packages

Enough to run a JAX-RS/EJB31 demo

Create GlassFish server instance
Deploy application
GlassFish à la carte
●

Unzip 5-MB bootstrap
●

●
●

Define the repository to use
Install individual packages
●
●

●

●
●

Start with core glassfish-nucleus package
Drags dependencies of course

Install umbrella package (a distro really)
●

●

Install core IPS packages

Enough to run a JAX-RS/EJB31 demo

Create GlassFish server instance
Deploy application
Run!
Monitoring and Management
Beyond web console and asadmin
●

Dynamic and non-intrusive monitoring of events
from any GlassFish runtime classes
●

BTrace integration new!
–
–

●

Probe Providers defined in java or XML new!
–

●
●

●

Portable, dynamic and safe tracing tool for Java
Btrace annotations and API to write scripts
Default providers & roll out your own

RESTful interface new!
DTrace for end-to-end new!

Still exposed via JMX
●

jconsole and visualvm as natural clients
RESTful admin
●

JAX-RS/Jersey + Grizzly to provide REST
interfaces to :
●
●
●

●

Available from :
●
●

●

●

http://localhost:4848/management/domain
http://localhost:4848/monitoring/domain

Use REST clients as Admin GUI substitute
●

●

Configure runtime (via GET, POST, DELETE)
Invoke commands (restart, stop, deploy, etc..)
Monitoring (GET only)

Use you favorite glue/scripting language or tool

Data offered as either XML, HTML or JSON
Extensible
Demo

RESTful admin
A lot more ...
●

Management and Monitoring
●

●

Dynamic languages
●

●
●

●

mod_jk
WebDAV, CGI, SSI

Web Services Metro
●

●

Rails, Grails, Django, Scala/Lift...

Comet, Atmosphere
Full support for
●

●

Dynamic, Btrace, ...

.Net 3.5 interop

OpenMQ

E

te
x

s
n

le
ib
GlassFish v3 – Practical
●

Get it from http://glassfish.org
●
●

●

Choice !
●
●

●
●

GlassFish v3 now final !
Also from http://www.oracle.com/goto/glassfish

Eclipse or NetBeans (or vi...)
Felix or Equinox

Graphical Installer, Zip version
Download size starting at 30MB
●

Can move from Web profile to full (and vice-versa)
Questions

alexis.mp@sun.com
http://blogs.sun.com/alexismp
twitter: alexismp

Contenu connexe

Tendances

NetBeans Support for EcmaScript 6
NetBeans Support for EcmaScript 6NetBeans Support for EcmaScript 6
NetBeans Support for EcmaScript 6Kostas Saidis
 
OpenJDK-Zulu talk at JEEConf'14
OpenJDK-Zulu talk at JEEConf'14OpenJDK-Zulu talk at JEEConf'14
OpenJDK-Zulu talk at JEEConf'14Ivan Krylov
 
Discuss about java 9 with latest features
Discuss about java 9 with latest featuresDiscuss about java 9 with latest features
Discuss about java 9 with latest featuresNexSoftsys
 
Preparing your code for Java 9
Preparing your code for Java 9Preparing your code for Java 9
Preparing your code for Java 9Deepu Xavier
 
OSGi in 5 minutes
OSGi in 5 minutesOSGi in 5 minutes
OSGi in 5 minutesSerge Huber
 
うさぎ組 in G* WorkShop -うさみみの日常-
うさぎ組 in G* WorkShop -うさみみの日常-うさぎ組 in G* WorkShop -うさみみの日常-
うさぎ組 in G* WorkShop -うさみみの日常-kyon mm
 
Polygot Java EE on the GraalVM
Polygot Java EE on the GraalVMPolygot Java EE on the GraalVM
Polygot Java EE on the GraalVMRyan Cuprak
 
Implementing Quality on Java projects
Implementing Quality on Java projectsImplementing Quality on Java projects
Implementing Quality on Java projectsVincent Massol
 
OpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheConOpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheConos890
 
Running JavaScript Efficiently in a Java World
Running JavaScript Efficiently in a Java WorldRunning JavaScript Efficiently in a Java World
Running JavaScript Efficiently in a Java Worldirbull
 
Module, AMD, RequireJS
Module, AMD, RequireJSModule, AMD, RequireJS
Module, AMD, RequireJS偉格 高
 
Dynamic Groovy Edges
Dynamic Groovy EdgesDynamic Groovy Edges
Dynamic Groovy EdgesJimmy Ray
 
Scala and Play with Gradle
Scala and Play with GradleScala and Play with Gradle
Scala and Play with GradleWei Chen
 
Gradle - time for another build
Gradle - time for another buildGradle - time for another build
Gradle - time for another buildIgor Khotin
 

Tendances (20)

NetBeans Support for EcmaScript 6
NetBeans Support for EcmaScript 6NetBeans Support for EcmaScript 6
NetBeans Support for EcmaScript 6
 
Project Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium ParisProject Fuji/OpenESB Aquarium Paris
Project Fuji/OpenESB Aquarium Paris
 
OSGi Presentation
OSGi PresentationOSGi Presentation
OSGi Presentation
 
Java 9 Modularity in Action
Java 9 Modularity in ActionJava 9 Modularity in Action
Java 9 Modularity in Action
 
OpenJDK-Zulu talk at JEEConf'14
OpenJDK-Zulu talk at JEEConf'14OpenJDK-Zulu talk at JEEConf'14
OpenJDK-Zulu talk at JEEConf'14
 
Discuss about java 9 with latest features
Discuss about java 9 with latest featuresDiscuss about java 9 with latest features
Discuss about java 9 with latest features
 
OSGi Blueprint Services
OSGi Blueprint ServicesOSGi Blueprint Services
OSGi Blueprint Services
 
Preparing your code for Java 9
Preparing your code for Java 9Preparing your code for Java 9
Preparing your code for Java 9
 
OSGi in 5 minutes
OSGi in 5 minutesOSGi in 5 minutes
OSGi in 5 minutes
 
うさぎ組 in G* WorkShop -うさみみの日常-
うさぎ組 in G* WorkShop -うさみみの日常-うさぎ組 in G* WorkShop -うさみみの日常-
うさぎ組 in G* WorkShop -うさみみの日常-
 
Polygot Java EE on the GraalVM
Polygot Java EE on the GraalVMPolygot Java EE on the GraalVM
Polygot Java EE on the GraalVM
 
Implementing Quality on Java projects
Implementing Quality on Java projectsImplementing Quality on Java projects
Implementing Quality on Java projects
 
OpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheConOpenWebBeans and DeltaSpike at ApacheCon
OpenWebBeans and DeltaSpike at ApacheCon
 
Running JavaScript Efficiently in a Java World
Running JavaScript Efficiently in a Java WorldRunning JavaScript Efficiently in a Java World
Running JavaScript Efficiently in a Java World
 
JSF2
JSF2JSF2
JSF2
 
Java FX Tools Aquarium Paris
Java FX Tools Aquarium ParisJava FX Tools Aquarium Paris
Java FX Tools Aquarium Paris
 
Module, AMD, RequireJS
Module, AMD, RequireJSModule, AMD, RequireJS
Module, AMD, RequireJS
 
Dynamic Groovy Edges
Dynamic Groovy EdgesDynamic Groovy Edges
Dynamic Groovy Edges
 
Scala and Play with Gradle
Scala and Play with GradleScala and Play with Gradle
Scala and Play with Gradle
 
Gradle - time for another build
Gradle - time for another buildGradle - time for another build
Gradle - time for another build
 

En vedette

Apache Camel - Stéphane Kay - April 2011
Apache Camel - Stéphane Kay - April 2011Apache Camel - Stéphane Kay - April 2011
Apache Camel - Stéphane Kay - April 2011JUG Lausanne
 
E6 misterios del cuerpo humano
E6 misterios del cuerpo humanoE6 misterios del cuerpo humano
E6 misterios del cuerpo humanoenquica
 
χημ.θετ.κατ.οξεα βασεις
χημ.θετ.κατ.οξεα βασειςχημ.θετ.κατ.οξεα βασεις
χημ.θετ.κατ.οξεα βασειςAgathi Bonia
 
Travel talk september 2015 - MAU SHA TAB
Travel talk september 2015 - MAU SHA TABTravel talk september 2015 - MAU SHA TAB
Travel talk september 2015 - MAU SHA TABBeachcomber Hotels
 
El paquete de_galletas
El paquete de_galletasEl paquete de_galletas
El paquete de_galletasenquica
 
9789740331469
97897403314699789740331469
9789740331469CUPress
 
Additive Manufacturing: The Future is Now
Additive Manufacturing: The Future is NowAdditive Manufacturing: The Future is Now
Additive Manufacturing: The Future is NowAudio Solutionz
 
Transcript.compressed
Transcript.compressedTranscript.compressed
Transcript.compressedVarun Patel
 
Cироты войны
Cироты войныCироты войны
Cироты войныpnextorg
 
10-12 Marksheet.compressed
10-12 Marksheet.compressed10-12 Marksheet.compressed
10-12 Marksheet.compressedVarun Patel
 
Sudhir Solar panel Catalogue
Sudhir Solar panel CatalogueSudhir Solar panel Catalogue
Sudhir Solar panel Catalogueritika
 
CloudBees - Sacha Labourey - May 2011
CloudBees - Sacha Labourey - May 2011CloudBees - Sacha Labourey - May 2011
CloudBees - Sacha Labourey - May 2011JUG Lausanne
 
Workshop scrum voor product owners
Workshop scrum voor product ownersWorkshop scrum voor product owners
Workshop scrum voor product ownersANGI studio
 
Arconics-Brochure-Nov-2015
Arconics-Brochure-Nov-2015Arconics-Brochure-Nov-2015
Arconics-Brochure-Nov-2015Gary Byrnes
 
Ge 04-relieve-1 b
Ge 04-relieve-1 bGe 04-relieve-1 b
Ge 04-relieve-1 bteresart
 

En vedette (20)

Apache Camel - Stéphane Kay - April 2011
Apache Camel - Stéphane Kay - April 2011Apache Camel - Stéphane Kay - April 2011
Apache Camel - Stéphane Kay - April 2011
 
E6 misterios del cuerpo humano
E6 misterios del cuerpo humanoE6 misterios del cuerpo humano
E6 misterios del cuerpo humano
 
Antenas tdt
Antenas tdtAntenas tdt
Antenas tdt
 
χημ.θετ.κατ.οξεα βασεις
χημ.θετ.κατ.οξεα βασειςχημ.θετ.κατ.οξεα βασεις
χημ.θετ.κατ.οξεα βασεις
 
Travel talk september 2015 - MAU SHA TAB
Travel talk september 2015 - MAU SHA TABTravel talk september 2015 - MAU SHA TAB
Travel talk september 2015 - MAU SHA TAB
 
El paquete de_galletas
El paquete de_galletasEl paquete de_galletas
El paquete de_galletas
 
9789740331469
97897403314699789740331469
9789740331469
 
Additive Manufacturing: The Future is Now
Additive Manufacturing: The Future is NowAdditive Manufacturing: The Future is Now
Additive Manufacturing: The Future is Now
 
Transcript.compressed
Transcript.compressedTranscript.compressed
Transcript.compressed
 
Resume
ResumeResume
Resume
 
Cироты войны
Cироты войныCироты войны
Cироты войны
 
10-12 Marksheet.compressed
10-12 Marksheet.compressed10-12 Marksheet.compressed
10-12 Marksheet.compressed
 
Sudhir Solar panel Catalogue
Sudhir Solar panel CatalogueSudhir Solar panel Catalogue
Sudhir Solar panel Catalogue
 
Etica
EticaEtica
Etica
 
CloudBees - Sacha Labourey - May 2011
CloudBees - Sacha Labourey - May 2011CloudBees - Sacha Labourey - May 2011
CloudBees - Sacha Labourey - May 2011
 
Workshop scrum voor product owners
Workshop scrum voor product ownersWorkshop scrum voor product owners
Workshop scrum voor product owners
 
First aid tips
First aid tipsFirst aid tips
First aid tips
 
Gamification
GamificationGamification
Gamification
 
Arconics-Brochure-Nov-2015
Arconics-Brochure-Nov-2015Arconics-Brochure-Nov-2015
Arconics-Brochure-Nov-2015
 
Ge 04-relieve-1 b
Ge 04-relieve-1 bGe 04-relieve-1 b
Ge 04-relieve-1 b
 

Similaire à Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010

OTN Developer Days - GlassFish
OTN Developer Days - GlassFishOTN Developer Days - GlassFish
OTN Developer Days - GlassFishglassfish
 
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Arun Gupta
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsArun Gupta
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011Arun Gupta
 
GlassFish OSGi Server
GlassFish OSGi ServerGlassFish OSGi Server
GlassFish OSGi ServerArtur Alves
 
Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1 Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1 Shreedhar Ganapathy
 
Glass Fish V3 University Amers May2009
Glass Fish V3  University Amers May2009Glass Fish V3  University Amers May2009
Glass Fish V3 University Amers May2009Eugene Bogaart
 
Boston 2011 OTN Developer Days - GlassFish
Boston 2011 OTN Developer Days - GlassFishBoston 2011 OTN Developer Days - GlassFish
Boston 2011 OTN Developer Days - GlassFishArun Gupta
 
Glassfish An Introduction
Glassfish An IntroductionGlassfish An Introduction
Glassfish An IntroductionJumping Bean
 
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...Arun Gupta
 
Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011Agora Group
 
Javascript as a target language - GWT KickOff - Part 2/2
Javascript as a target language - GWT KickOff - Part 2/2Javascript as a target language - GWT KickOff - Part 2/2
Javascript as a target language - GWT KickOff - Part 2/2JooinK
 
OSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaOSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaArun Gupta
 
OSGi & Java EE in GlassFish
OSGi & Java EE in GlassFishOSGi & Java EE in GlassFish
OSGi & Java EE in GlassFishSanjeeb Sahoo
 
Java EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConJava EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConLudovic Champenois
 

Similaire à Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010 (20)

OTN Developer Days - GlassFish
OTN Developer Days - GlassFishOTN Developer Days - GlassFish
OTN Developer Days - GlassFish
 
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
Deploying Java EE 6 Apps in a Cluster: GlassFish 3.1 at Dallas Tech Fest 2011
 
GlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 ApplicationsGlassFish Server 3.1: Deploying your Java EE 6 Applications
GlassFish Server 3.1: Deploying your Java EE 6 Applications
 
GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011GlassFish 3.1 at JCertif 2011
GlassFish 3.1 at JCertif 2011
 
GlassFish Community and future larochelle
GlassFish Community and future larochelleGlassFish Community and future larochelle
GlassFish Community and future larochelle
 
GlassFish OSGi - Java2days 2010
GlassFish OSGi - Java2days 2010GlassFish OSGi - Java2days 2010
GlassFish OSGi - Java2days 2010
 
GlassFish OSGi Server
GlassFish OSGi ServerGlassFish OSGi Server
GlassFish OSGi Server
 
Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1 Java EE 6 Clustering with Glassfish 3.1
Java EE 6 Clustering with Glassfish 3.1
 
GlassFish and JavaEE, Today and Future
GlassFish and JavaEE, Today and FutureGlassFish and JavaEE, Today and Future
GlassFish and JavaEE, Today and Future
 
Glass Fish V3 University Amers May2009
Glass Fish V3  University Amers May2009Glass Fish V3  University Amers May2009
Glass Fish V3 University Amers May2009
 
Boston 2011 OTN Developer Days - GlassFish
Boston 2011 OTN Developer Days - GlassFishBoston 2011 OTN Developer Days - GlassFish
Boston 2011 OTN Developer Days - GlassFish
 
Glassfish An Introduction
Glassfish An IntroductionGlassfish An Introduction
Glassfish An Introduction
 
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
GlassFish 3.1 – Simplifying your Java EE 6 Development and Deployment @ JAX L...
 
Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011
 
Javascript as a target language - GWT KickOff - Part 2/2
Javascript as a target language - GWT KickOff - Part 2/2Javascript as a target language - GWT KickOff - Part 2/2
Javascript as a target language - GWT KickOff - Part 2/2
 
OSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaOSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 India
 
OSGi & Java EE in GlassFish
OSGi & Java EE in GlassFishOSGi & Java EE in GlassFish
OSGi & Java EE in GlassFish
 
Java EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseConJava EE 6, Eclipse @ EclipseCon
Java EE 6, Eclipse @ EclipseCon
 
Hybrid Applications
Hybrid ApplicationsHybrid Applications
Hybrid Applications
 
Retour JavaOne 2009
Retour JavaOne 2009Retour JavaOne 2009
Retour JavaOne 2009
 

Plus de JUG Lausanne

Introduction aux algorithmes génétiques
Introduction aux algorithmes génétiquesIntroduction aux algorithmes génétiques
Introduction aux algorithmes génétiquesJUG Lausanne
 
Développer un moteur d'exécution symbolique en partant de rien
Développer un moteur d'exécution symbolique en partant de rienDévelopper un moteur d'exécution symbolique en partant de rien
Développer un moteur d'exécution symbolique en partant de rienJUG Lausanne
 
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp AndroidReverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp AndroidJUG Lausanne
 
Exemple d'IOT et ML avec Android, Cassandra et Spark
Exemple d'IOT et ML avec Android, Cassandra et SparkExemple d'IOT et ML avec Android, Cassandra et Spark
Exemple d'IOT et ML avec Android, Cassandra et SparkJUG Lausanne
 
Play! chez Zaptravel - Nicolas Martignole - December 2012
Play! chez Zaptravel - Nicolas Martignole - December 2012Play! chez Zaptravel - Nicolas Martignole - December 2012
Play! chez Zaptravel - Nicolas Martignole - December 2012JUG Lausanne
 
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012JUG Lausanne
 
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...JUG Lausanne
 
OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010JUG Lausanne
 
Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010JUG Lausanne
 
Infinispan - Galder Zamarreno - October 2010
Infinispan - Galder Zamarreno - October 2010Infinispan - Galder Zamarreno - October 2010
Infinispan - Galder Zamarreno - October 2010JUG Lausanne
 
No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010JUG Lausanne
 
Introduction à Scala - Michel Schinz - January 2010
Introduction à Scala - Michel Schinz - January 2010Introduction à Scala - Michel Schinz - January 2010
Introduction à Scala - Michel Schinz - January 2010JUG Lausanne
 
Introduction Groovy / Grails - Cyril Picat - December 2009
Introduction Groovy / Grails - Cyril Picat - December 2009Introduction Groovy / Grails - Cyril Picat - December 2009
Introduction Groovy / Grails - Cyril Picat - December 2009JUG Lausanne
 
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009JUG Lausanne
 
Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009JUG Lausanne
 
Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009JUG Lausanne
 
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009JUG Lausanne
 
XML & Java - Raphaël Tagliani - March 2008
XML & Java - Raphaël Tagliani - March 2008XML & Java - Raphaël Tagliani - March 2008
XML & Java - Raphaël Tagliani - March 2008JUG Lausanne
 
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008JUG Lausanne
 
Scripting with Java FX - Cédric Tabin - December 2007
Scripting with Java FX - Cédric Tabin - December 2007Scripting with Java FX - Cédric Tabin - December 2007
Scripting with Java FX - Cédric Tabin - December 2007JUG Lausanne
 

Plus de JUG Lausanne (20)

Introduction aux algorithmes génétiques
Introduction aux algorithmes génétiquesIntroduction aux algorithmes génétiques
Introduction aux algorithmes génétiques
 
Développer un moteur d'exécution symbolique en partant de rien
Développer un moteur d'exécution symbolique en partant de rienDévelopper un moteur d'exécution symbolique en partant de rien
Développer un moteur d'exécution symbolique en partant de rien
 
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp AndroidReverse engineering Java et contournement du mécanisme de paiement inapp Android
Reverse engineering Java et contournement du mécanisme de paiement inapp Android
 
Exemple d'IOT et ML avec Android, Cassandra et Spark
Exemple d'IOT et ML avec Android, Cassandra et SparkExemple d'IOT et ML avec Android, Cassandra et Spark
Exemple d'IOT et ML avec Android, Cassandra et Spark
 
Play! chez Zaptravel - Nicolas Martignole - December 2012
Play! chez Zaptravel - Nicolas Martignole - December 2012Play! chez Zaptravel - Nicolas Martignole - December 2012
Play! chez Zaptravel - Nicolas Martignole - December 2012
 
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
Playframework Realtime Web - Guillaume Bort & Sadek Drobi - December 2012
 
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
Session dédiée à l'analyse de la qualité du code Java - Cyril Picat - Februar...
 
OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010OpenDS - Ludovic Poitou - December 2010
OpenDS - Ludovic Poitou - December 2010
 
Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010Spring Batch - Julien Jakubowski - November 2010
Spring Batch - Julien Jakubowski - November 2010
 
Infinispan - Galder Zamarreno - October 2010
Infinispan - Galder Zamarreno - October 2010Infinispan - Galder Zamarreno - October 2010
Infinispan - Galder Zamarreno - October 2010
 
No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010No Sql - Olivier Mallassi - September 2010
No Sql - Olivier Mallassi - September 2010
 
Introduction à Scala - Michel Schinz - January 2010
Introduction à Scala - Michel Schinz - January 2010Introduction à Scala - Michel Schinz - January 2010
Introduction à Scala - Michel Schinz - January 2010
 
Introduction Groovy / Grails - Cyril Picat - December 2009
Introduction Groovy / Grails - Cyril Picat - December 2009Introduction Groovy / Grails - Cyril Picat - December 2009
Introduction Groovy / Grails - Cyril Picat - December 2009
 
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
Initiation aux tests fonctionnels - Philippe Kernevez - October 2009
 
Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009Sonar - Freddy Mallet - April 2009
Sonar - Freddy Mallet - April 2009
 
Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009
 
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
Introduction à Google Web Toolkit (GWT) - Philippe Kernevez - February 2009
 
XML & Java - Raphaël Tagliani - March 2008
XML & Java - Raphaël Tagliani - March 2008XML & Java - Raphaël Tagliani - March 2008
XML & Java - Raphaël Tagliani - March 2008
 
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
Visual Mobile Applications with Netbeans 6.0 - Cédric Tabin - February 2008
 
Scripting with Java FX - Cédric Tabin - December 2007
Scripting with Java FX - Cédric Tabin - December 2007Scripting with Java FX - Cédric Tabin - December 2007
Scripting with Java FX - Cédric Tabin - December 2007
 

Dernier

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
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
 
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
 
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
 
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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAndrey Devyatkin
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
🐬 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
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUK Journal
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
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
 
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
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 

Dernier (20)

Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
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
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
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
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
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
 
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
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
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
 
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
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 

Java EE 6 & GlassFish V3 - Alexis Moussine-Pouchkine - May 2010

  • 1. GlassFish v3 The future of Java EE is here Alexis Moussine-Pouchkine GlassFish Team
  • 2. This is no science fiction Java EE 6 and GlassFish v3 shipped th final releases on December 10 2009
  • 5. Some History and Context Tomcat Jasper Catalina JSTL Struts Crimson XSLTC Xalan Xerces JAXB JAX-RPC JSF GlassFish v3 (Java EE 6) GlassFish v1 (Java EE 5) GlassFish Launch June 2005 v2 May 2006 Sept. 2007 v2.1 v2.1.1 Jan 2008 (you are here) Dec. 2009
  • 6. GlassFish ● A Community ● ● ● Users, Partners, Testers, Developers Started in 2005 on java.net Sub-projects – ● Jersey (JAX-RS), Metro (JAX-WS), Grizzly (nio), Atmosphere (Comet), OpenMQ (JMS), and scripting Application Server ● ● ● Enterprise Quality and Open Source Java EE 5 / 6 Reference Implementation Full Commercial Support from Oracle
  • 8. GlassFish going forward ● No change to operation of open source project ● ● ● ● ● GlassFish 3.0.1 ● ● GlassFish Open Source Edition under existing license Remains transparent and participatory Strengthened by Oracle leadership Customer and community driven product roadmap Additional platforms, jrockit, ... Feature releases ● ● ● GlassFish v3.1 in 2010, v3.2 in 2011, v4 in 2012 Clustering, centralized admin, Coherence, virtualization Details at http://glassfish.org/roadmap
  • 10. Painless Java EE development ! ● ● Incremental compile of all Java EE artifacts Auto-deploy of all Java EE and static artifacts
  • 11. Session Retention ● Deployment option to maintain stateful sessions across re-deployments $ asadmin redeploy --properties keepSessions=true myapp.war ● ● Greatly simplifies the development paradigm Integrated in IDEs
  • 13. Modular and Dynamic ● Modular : Apache Felix (OSGi) ● Extensible : HK2 ● Yet very Fast !
  • 14.
  • 15. Java EE, a brief History Ease of development (web) Ease of development Java EE 5 Web Services Enterprise Application Robust Scalable J2EE 1.4 J2EE 1.3 J2EE 1.2 Project JPE May 1998 Servlet JSP EJB JMS RMI/IIOP Dec 1999 10 specs CMP JCA Sept 2001 13 specs WS Management Deployment Nov 2003 20 specs Annotations EJB 3 JPA 1.0 WS-* JSF May 2006 23 specs Java EE 6 EJB 3.1 JPA 2.0 Servlet 3.0 JSF 2.0 JAX-RS 1.1 CDI 1.0 @Inject Bean Validat° Web Profile Managed Bean Q4 2009 28 specs
  • 16. Java EE 6 – What's New? ● ● ● ● ● Several new APIs Web Profile Extensibility & Pluggability Dependency Injection Improvement to many APIs
  • 17. New and improved specifications ● ● ● ● ● ● ● EJB 3.1 JPA 2.0 Servlet 3.0 JSF 2.0 JAX-RS 1.1 Connectors 1.6 Bean Validation 1.0 ● ● ● ● ● ● ● ● DI 1.0 CDI 1.0 Managed Beans 1.0 Interceptors 1.1 JAX-WS 2.2 JSR-109 1.3 JSP 2.2 / EL 2.2 JSR-250 1.1
  • 18. JAX-RS ● RESTful web services API ● Already widely adopted ● Really a general, high-level HTTP API ● Annotation-based programming model ● Programmatic API when needed ● JAX-RS 1.1 integration with EJBs
  • 19. JAX-RS sample code @Path("widgets/{id}") @Produces("application/widgets+xml") public class WidgetResource { public WidgetResource( @PathParam("id") String id) { ... } @GET Widget getWidget() { ... } }
  • 20. Bean Validation 1.0 public class Address { @NotNull @Size(max=30, message="longer than {max} characters") private String street1; ... @NotNull @Valid private Country country; } public class Country { @NotNull @Size(max=20) private String name; ... } request recursive object graph validation
  • 21. Build your own! @Size(min=5, max=5) @ConstraintValidator(ZipcodeValidator.class) @Documented @Target({ANNOTATION_TYPE, METHOD, FIELD}) @Retention(RUNTIME) public @interface ZipCode { String message() default "Wrong zipcode"; String[] groups() default {}; } Integrated in JPA and JSF Bootstrap APIs
  • 22. Java EE 6 Web Profile ● ● ● ● ● ● ● Servlet 3.0 JSP 2.2 / EL 2.2 JSR-45 1.0 JSTL 1.2 JSF 2.0 Bean Validation 1.0 EJB 3.1 Lite ● ● ● ● ● ● ● JPA 2.0 JTA 1.1 DI 1.0 CDI 1.0 Managed Beans 1.0 Interceptors 1.1 JSR-250 1.1
  • 23. Modular Web Applications ● ● ● ● ● ● Libraries can contain web-fragment.xml web.xml is optional @WebServlet, @WebFilter annotations ServletContainerInitializer interface Programmatic registration Resource jars
  • 24. JSF 2.0 ● Standardized facelets ● Auto-discovery of component libraries ● Composite components ● Ajax support with partial views ● Even a JavaScript API !
  • 25. EJB 3.1 ● @Singleton beans ● @Startup beans ● @Asynchronous invocations ● @Schedule tasks ● EJBContainer API works on Java SE ● Define EJBs directly inside a web app
  • 26. Packaging in a war foo.ear lib/foo_common.jar com/acme/Foo.class foo_web.war WEB-INF/web.xml WEB-INF/classes com/acme/FooServlet.class foo_ejb.jar com/acme/FooEJB.class com/acme/FooEJBLocal.class foo.war WEB-INF/classes com/acme/Foo.class com/acme/FooServlet.class com/acme/FooEJB.class
  • 27. JPA 2.0 ● ● Support for collections of basic types and embeddable objects JPQL enhancements e.g. CASE WHEN, NULLIF Pessimistic locking ● ● ● Criteria API for dynamic query construction
  • 28. Dependency Injection ● JSR-299 + JSR-330 ● Added @Inject support @Inject @LoggedIn User user; ● Beans discovered at startup ● Injection metamodel (BeanManager API) ● @Resource still around @Resource DataSource myDB;
  • 29. Dependency Injection Sample public class CheckoutHandler { @Inject CheckoutHandler(@LoggedIn User user, @Reliable @PayBy(CREDIT_CARD) PaymentProcessor processor, @Default Cart cart) { ... } }
  • 30. Demo Painless (Java EE 6) development
  • 31. Yes, Eclipse too ! GlassFish Tools Bundle for Eclipse : http://download.java.net/glassfish/eclipse/
  • 32. More Painless Development ● ● Fast auto-deploy of all Java EE and static artifacts Application runner ● ● java -jar glassfish.jar toto.war Integration with maven 2 ● mvn gf:run, gf:start, gf:deploy, ... ● Containers can be added/removed dynamically ● Excellent Tools integration
  • 33. How hard should it be to test EJBs? EJBContainer c = EJBContainer.createEJBContainer(); Context ic = c.getContext(); SimpleEjb ejb = (SimpleEjb) ic.lookup("java:global/sample/SimpleEjb"); ejb.sayHello();
  • 34. How hard should it be to test EJBs? New in EJB 3.1 EJBContainer c = EJBContainer.createEJBContainer(); Context ic = c.getContext(); SimpleEjb ejb = (SimpleEjb) ic.lookup("java:global/sample/SimpleEjb"); ejb.sayHello(); Portable JNDI name
  • 35. How hard should it be to test EJBs? @Test public void test() { EJBContainer c = EJBContainer.createEJBContainer(); Context ic = c.getContext(); SimpleEjb ejb = (SimpleEjb) ic.lookup("java:global/sample/SimpleEjb"); ejb.sayHello(); } Demo
  • 36. GlassFish Embedded org.glassfish.api.embedded.Server server; Server.Builder builder = new Server.Builder(); server = builder.build();
  • 37. GlassFish Embedded org.glassfish.api.embedded.Server server; Server.Builder builder = new Server.Builder(); server = builder.build(); ContainerBuilder b = server.createConfig(ContainerBuilder.Type.web); server.addContainer(b);
  • 38. GlassFish Embedded org.glassfish.api.embedded.Server server; Server.Builder builder = new Server.Builder(); server = builder.build(); ContainerBuilder b = server.createConfig(ContainerBuilder.Type.web); server.addContainer(b); File archive = new File("hello.war"); server.getDeployer().deploy(archive); Same bits, different entry point All in one JAR available
  • 39. GlassFish Embedded @BeforeClass public static void initContainer() { org.glassfish.api.embedded.Server server; Server.Builder builder = new Server.Builder(); server = builder.build(); ContainerBuilder b = server.createConfig(ContainerBuilder.Type.web); server.addContainer(b); File archive = new File("hello.war"); server.getDeployer().deploy(archive); } @Test public static void pingApplication() { ... }
  • 40. GlassFish Embedded public static void main(String[] args) { org.glassfish.api.embedded.Server server; Server.Builder builder = new Server.Builder(); server = builder.build(); ContainerBuilder b = server.createConfig(ContainerBuilder.Type.web); server.addContainer(b); File archive = new File("realApplication.war"); server.getDeployer().deploy(archive); } Ship app server inside the application
  • 41. What's the deal with OSGi? ● GlassFish runs on top of OSGi (Felix by default) ● ● ● ● ● ● Also runs unmodified on Equinox (and Knopflerfish) GlassFish ships with 200+ bundles Can run without OSGi (Static mode) Can use OSGi management tools (CLI or Web) Can be installed on top of existing OSGi runtime Any OSGi bundle will run in GlassFish v3 ● ● ● Drop it in glassfish/modules{/autostart} Can also asadmin deploy it using --type osgi GlassFish OSGi admin console
  • 42. Extending GlassFish v3 OSGi-style – an example, a demo and a picture ● ● ● ● ● OSGi declarative service Service-Component entry in the JAR Manifest Invoke the service from a servlet using standard @Resource injection Never use a GlassFish API ! No need to chose between OSGi and Java EE Step by step: http://blogs.sun.com/dochez/entry/glassfish_v3_extensions_part_4
  • 44. Extending GlassFish v3 SpringDM – another example, demo and picture ● ● ● ● ● Extend GlassFish with an unmodified Spring dm container Simple Spring bean implementing the service Invoke the service from a servlet using standard @Resource injection Still no use of a GlassFish API Single runtime for both Spring and full Java EE Step by step: http://blogs.sun.com/dochez/entry/glassfish_v3_extensions_part_4
  • 45. OSGi + Java EE = Hybrid Apps ● GlassFish as the modular runtime ● ● ● ● Assembled spontaneously Admin tools (Web & CLI) Implementation of Java EE related OSGi services & standards Support for Java EE 6 platform ● ● e.g. JPA or EJB as OSGi services Web Application Bundle (WAB) ● WAR + OSGi metadata + Web-ContextPath header
  • 48. GlassFish à la carte ● Unzip 5-MB bootstrap ● Install core IPS packages
  • 49. GlassFish à la carte ● Unzip 5-MB bootstrap ● ● Install core IPS packages Define the repository to use
  • 50. GlassFish à la carte ● Unzip 5-MB bootstrap ● ● ● Install core IPS packages Define the repository to use Install individual packages ● ● Start with core glassfish-nucleus package Drags dependencies of course
  • 51. GlassFish à la carte ● Unzip 5-MB bootstrap ● ● ● Define the repository to use Install individual packages ● ● ● Install core IPS packages Start with core glassfish-nucleus package Drags dependencies of course Install umbrella package (a distro really) ● Enough to run a JAX-RS/EJB31 demo
  • 52. GlassFish à la carte ● Unzip 5-MB bootstrap ● ● ● Define the repository to use Install individual packages ● ● ● ● Start with core glassfish-nucleus package Drags dependencies of course Install umbrella package (a distro really) ● ● Install core IPS packages Enough to run a JAX-RS/EJB31 demo Create GlassFish server instance Deploy application
  • 53. GlassFish à la carte ● Unzip 5-MB bootstrap ● ● ● Define the repository to use Install individual packages ● ● ● ● ● Start with core glassfish-nucleus package Drags dependencies of course Install umbrella package (a distro really) ● ● Install core IPS packages Enough to run a JAX-RS/EJB31 demo Create GlassFish server instance Deploy application Run!
  • 54. Monitoring and Management Beyond web console and asadmin ● Dynamic and non-intrusive monitoring of events from any GlassFish runtime classes ● BTrace integration new! – – ● Probe Providers defined in java or XML new! – ● ● ● Portable, dynamic and safe tracing tool for Java Btrace annotations and API to write scripts Default providers & roll out your own RESTful interface new! DTrace for end-to-end new! Still exposed via JMX ● jconsole and visualvm as natural clients
  • 55. RESTful admin ● JAX-RS/Jersey + Grizzly to provide REST interfaces to : ● ● ● ● Available from : ● ● ● ● http://localhost:4848/management/domain http://localhost:4848/monitoring/domain Use REST clients as Admin GUI substitute ● ● Configure runtime (via GET, POST, DELETE) Invoke commands (restart, stop, deploy, etc..) Monitoring (GET only) Use you favorite glue/scripting language or tool Data offered as either XML, HTML or JSON Extensible
  • 57. A lot more ... ● Management and Monitoring ● ● Dynamic languages ● ● ● ● mod_jk WebDAV, CGI, SSI Web Services Metro ● ● Rails, Grails, Django, Scala/Lift... Comet, Atmosphere Full support for ● ● Dynamic, Btrace, ... .Net 3.5 interop OpenMQ E te x s n le ib
  • 58. GlassFish v3 – Practical ● Get it from http://glassfish.org ● ● ● Choice ! ● ● ● ● GlassFish v3 now final ! Also from http://www.oracle.com/goto/glassfish Eclipse or NetBeans (or vi...) Felix or Equinox Graphical Installer, Zip version Download size starting at 30MB ● Can move from Web profile to full (and vice-versa)